Использование glob
import glob
print glob.glob('my_directory/a_a_a*')
выход ниже, где my_directory
содержит много файлов, в том числе a_a_a_X
где X
является 1-4
.
['my_directory/a_a_a_3', 'my_directory/a_a_a_2', 'my_directory/a_a_a_1', 'my_directory/a_a_a_4']
Edit: Если вы не ориентируетесь на конкретный префикс, но знать формат префикса, вы можете использовать этот код:
import os
import re
files = os.listdir("somedirectory")
prefixes = {}
for f in files:
m = re.search('[^_]+_[^_]+_[^_]+_', f)
if m:
prefix = m.group(0)
print prefix
if prefix in prefixes:
prefixes[prefix].append(f)
else:
prefixes[prefix] = [f]
for prefix in prefixes:
print prefixes[prefix]
Для случая, когда файлы является следующий массив :
files = [
'out-15.03_.03_12.57_001.h5',
'out-15.03_.03_25.05_001.h5',
'out-15.03_.03_25.05_002.h5',
'out-15.03_.03_25.05_003.h5',
'out-15.03_.03_37.52_001.h5' ]
Это выход:
['out-15.03_.03_12.57_001.h5']
['out-15.03_.03_25.05_001.h5', 'out-15.03_.03_25.05_002.h5', 'out-15.03_.03_25.05_003.h5']
['out-15.03_.03_37.52_001.h5']
Есть сотни неизвестных комбинаций префиксов. Любой метод, который требует от меня поиска определенного префикса, кажется неэффективным. – astromonerd
Для пояснения, 'a_a_a_1' и' a_a_a_2' делят префикс 'a_a_a_'. Например, они также используют префикс 'a_a_' с' a_a_b_1'. Вы хотите сгруппировать все файлы с помощью 6-символьного префикса или любого соответствующего префикса? – Alden
Я добавил код для более общего случая. Сообщите мне, если это не то, что вы ищете. – Alden