Пока мне удалось собрать все файлы из ряда папок, используя следующую команду:
path = r'C:\Users\keefr\Documents\Data\Pulse Characterisation\sample 7'
subfolders = [f.path for f in os.scandir(path) if f.is_dir()]
for sub in subfolders:
for f in os.listdir(sub):
print(f)
files = [i for i in f if os.path.isfile(os.path.join(f,'*.txt')) and 'data' in f]
Где f выводит имена всех файлов. Что я хочу сделать, это взять только определенные файлы из этого (начинается с 'data' и представляет собой файл .txt) и поместить их в массив с именем files
. Последняя строка в приведенном выше коде - это место, где я пытался это сделать, но всякий раз, когда я печатаю файлы, это все равно пустой массив. Любые идеи, где я иду не так и как это исправить?
Обновление Я добился определенного прогресса, я изменил последнюю строку на:
if os.path.isfile(os.path.join(sub,f)) and 'data' in f:
files.append(f)
Теперь у меня есть массив с правильными именами файлов. Проблема в том, что есть смесь файлов .meta, .index и .txt, а мне нужны только файлы .txt. Какой лучший способ отфильтровать другие типы файлов?