пакетное переименование файлов с использованием Pandas
Всем доброго временени суток! В датафрейме (db_name_file) pandas, в столбце name_file_izm содержатся измененные имена файлов. Как их подставлять, чтобы переименовать все текущие, расположенные в директории dir? Пробовал такой код:
for file in os.listdir(dir):
for row in db_name_file.itertuples():
os.rename(file, row.name_file_izm)
Выдает ошибку, что "FileExistsError: [WinError 183] Невозможно создать файл, так как он уже существует..."
Ответы (1 шт):
Если там соответствие один-к-одному, т.е. каждому файлу в каталоге соответствует одна запись в датафрейме и исходных названий файлов в датафрейме нет, то воспользуйтесь функцией zip для параллельного перебора коллекций:
for file,name_file_izm in zip(os.listdir(dir),db_name_file.name_file_izm.values):
os.rename(file, name_file_izm)
Но лучше бы в датафрейме были и исходные названия файлов, тогда нужно просто попарно взять старые и новые имена файлов, а не полагаться на то, что у них будет правильное соответствие файлам в каталоге.