пакетное переименование файлов с использованием 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 шт):

Автор решения: CrazyElf

Если там соответствие один-к-одному, т.е. каждому файлу в каталоге соответствует одна запись в датафрейме и исходных названий файлов в датафрейме нет, то воспользуйтесь функцией zip для параллельного перебора коллекций:

for file,name_file_izm in zip(os.listdir(dir),db_name_file.name_file_izm.values):
    os.rename(file, name_file_izm)

Но лучше бы в датафрейме были и исходные названия файлов, тогда нужно просто попарно взять старые и новые имена файлов, а не полагаться на то, что у них будет правильное соответствие файлам в каталоге.

→ Ссылка