【问题标题】:python os: get all absolute file paths under a certain directorypython os:获取某个目录下的所有绝对文件路径
【发布时间】:2017-01-18 23:05:29
【问题描述】:

我有以下文件夹结构:

Desktop
├── dir1
│   ├── dir2
│   │   └── file4.pdf
│   ├── file2.pdf
│   └── file3.pdf
└── file1.pdf

我正在尝试返回所有文件及其相对于当前工作目录(桌面)的路径。根据我上面的例子,我想要:

Desktop/file1.pdf
Desktop/dir1/file2.pdf
Desktop/dir1/file3.pdf
Desktop/dir1/dir2/file4.pdf

这是我目前所拥有的,但它无法识别嵌套目录:

import os
for dirpath, dirnames, filenames in os.walk('/Users/Me/Desktop'):
    for file in filenames:
        print os.path.abspath(file)

# /Users/Me/Desktop/file1.pdf
# /Users/Me/Desktop/file2.pdf
# /Users/Me/Desktop/file3.pdf
# /Users/Me/Desktop/file4.pdf

【问题讨论】:

    标签: python operating-system os.walk


    【解决方案1】:

    filenames 只是文件名列表,不存储任何目录信息。那来自dirpath,你现在忽略它。

    import os
    for dirpath, dirnames, filenames in os.walk('/Users/Me/Desktop'):
        for file in filenames:
            print os.path.join(os.path.relpath(dirpath, '/Users/Me/Desktop'), file)
    

    编辑:添加os.path.relpath 以提供相对路径而不是绝对路径。见this answer

    【讨论】:

    • Thos 为他提供了绝对路径,但仍有一些工作要做,以获取 OP 要求的相对路径。
    • 现在知道了。非常感谢
    猜你喜欢
    • 2012-04-06
    • 2023-04-05
    • 2020-07-15
    • 1970-01-01
    • 2013-08-28
    • 2019-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多