Поиск файлов по шаблону и их сортировка

s591962

Новичок
Пользователь
Окт 12, 2021
130
3
18
Python:
# fillGap.py - finds all files with given prefix in folder
# and locates gaps in numbering and fills the gap

import os, re, shutil
prefix = 'spam'
prefixRegex = re.compile(r'(%s)((\d)+)(\.[a-zA-Z0-9]+)' % prefix) #создание регулярного выражения

for folderName, subfolders, filenames in os.walk('D:\\2'):
    print ('filenames=',filenames)
    filenamesstr =(" ".join(filenames))# возвращается строка из названий всех файлов
    mo = re.findall(prefixRegex, filenamesstr)# возвращается список совпадений с шаблоном
    print ('mo=',mo)

Когда смотрю filenames то название файлов вижу как filenames= ['spam001.txt', 'spam003.txt']. После сравнения с шаблоном вижу их уже как mo= [ ('spam', '001', '1', '.txt'), ('spam', '003', '3', '.txt')]. Откуда берется эта 1 и 3.
Теперь мне нужно получить строку из названий этих файлов.
ww =(" ".join(mo)) выдает ошибку
 
Последнее редактирование модератором:

Vershitel_sudeb

Vershitel sudeb
Команда форума
Модератор
Мар 17, 2021
973
220
43
21
Москва
Ошибка потому, что у тебя список кортежей, а join принимает список строк
установи:
prefixRegex = r'%s\d+\.\w+' % prefix
 

Форум IT Специалистов