Массовое переименование файлов удаляет некоторые из них - PullRequest
0 голосов
/ 01 февраля 2019

При переименовании многих файлов с помощью os.rename(src, dest) некоторые из моих файлов исчезают.

Я нахожусь в Ubuntu.

In [66]: len(os.listdir())                                                                                                                                                                                         
Out[66]: 1430

In [67]: for i, name in enumerate(os.listdir()): 
    ...:     extension = os.path.splitext(name)[1] 
    ...:     dest = f"{i+1}{extension}" 
    ...:     os.rename(name, dest) 
    ...:                                                                                                                                                                                                           

In [68]: len(os.listdir())                                                                                                                                                                                         
Out[68]: 839

1 Ответ

0 голосов
/ 01 февраля 2019

Согласно FineManual (TM) (выделено мое):

os.rename (src, dst, *, src_dir_fd = Нет, dst_dir_fd =Нет)

Переименуйте файл или каталог src в dst.Если dst является каталогом, будет вызвано OSError. В Unix, если dst существует и является файлом, он будет автоматически заменен, если у пользователя есть разрешение

Так что, очевидно, если у вас уже есть файлы, соответствующие f"{i+1}{extension}", они будутперезаписать.

...