Как переименовать файл с помощью Python, не перезаписывая существующий файл?Python

Программы на Python
Anonymous
Как переименовать файл с помощью Python, не перезаписывая существующий файл?

Сообщение Anonymous »

Я хотел бы переименовать файл с помощью Python в Linux, но только в том случае, если он не будет перезаписывать существующий файл.
Я ищу такое же поведение, как:< /p>

Код: Выделить всё

$ mv --no-clobber old_filename new_filename
Насколько я могу судить, я не могу добиться такого поведения от очевидных кандидатов:
  • Код: Выделить всё

    os.rename
    автоматически перезапишет файл с именем new_filename при работе в Linux (но не в Windows!).
  • Код: Выделить всё

    shutil.move
    просто использует os.rename, поэтому поведение у него такое же.
Кроме того, мне нужно, чтобы операция была атомарной для избегайте условий гонки, поэтому мне не нужен двухэтапный подход, при котором проверяется существование new_filename, а затем переименовывается, если он не найден.

Подробнее здесь: https://stackoverflow.com/questions/785 ... sting-file

Вернуться в «Python»