Python - Как использовать относительные пути с os.replace? - PullRequest
1 голос
/ 26 января 2020

Я использую функцию os.replace для переименования папки. Папка останется в том же родительском каталоге.

parent_dir = '/Users/my_Username/Desktop/'
old_name = 'foo'
new_name = 'bar'
os.replace(parent_dir + old_name, parent_dir + new_name)

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

Согласно в документы ,

Эта функция может поддерживать указание src_dir_fd и / или dst_dir_fd для указания путей относительно дескрипторов каталога.

Однако я не могу выяснить, как передать в относительный путь обеих папок. Я думал, что это будет примерно так:

os.rename(old_name, new_name, src_dir_fd=parent_dir)

Но это не сработает.

Как пройти по относительному пути?

1 Ответ

0 голосов
/ 26 января 2020

Вы можете написать что-то вроде этого:

import os

parent_dir = '/Users/my_Username/Desktop/'
old_name = 'foo.txt'
new_name = 'bar.txt'

with os.open(parent_dir, os.O_RDONLY) as fd:
    os.replace(old_name, new_name, src_dir_fd=fd)

Опция src_dir_fd принимает дескриптор файла (fd), целое число фактического пути. В документации есть хорошее описание .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...