【问题标题】:Python - How to use relative paths with os.replace?Python - 如何在 os.replace 中使用相对路径?
【发布时间】:2020-01-26 03:51:34
【问题描述】:

我正在使用os.replace 函数重命名文件夹。该文件夹将保留在同一父目录中。

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

这段代码有效,但感觉有点多余,尤其是在使用长变量名和多次调用此函数时。

根据docs

此函数可以支持指定 src_dir_fd 和/或 dst_dir_fd 以提供相对于目录描述符的路径。

但是,我无法弄清楚如何传入两个文件夹的相对路径。我以为会是这样的:

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

但这不起作用。

如何传入相对路径?

【问题讨论】:

    标签: python macos


    【解决方案1】:

    你可以这样写:

    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),而不是实际路径。 documentation中有很好的描述。

    【讨论】:

    • 感谢您的回复!我确实阅读了您在答案中链接的文档,但我仍然不完全清楚文件描述符是什么。如何将文件路径转换为文件描述符,它是什么样的?
    • @PeterSchorn 看看这个问题:stackoverflow.com/questions/5256599/…
    猜你喜欢
    • 1970-01-01
    • 2017-11-30
    • 1970-01-01
    • 2017-06-15
    • 2012-10-24
    • 1970-01-01
    • 2019-03-30
    • 2017-02-11
    • 2015-12-10
    相关资源
    最近更新 更多