python os:获取某个目录下的所有绝对文件路径
python os: get all absolute file paths under a certain directory
我有以下文件夹结构:
Desktop
├── dir1
│ ├── dir2
│ │ └── file4.pdf
│ ├── file2.pdf
│ └── file3.pdf
└── file1.pdf
我正在尝试 return 所有文件及其相对于当前工作目录(桌面)的路径。根据我上面的例子,我想要:
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
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。
我有以下文件夹结构:
Desktop
├── dir1
│ ├── dir2
│ │ └── file4.pdf
│ ├── file2.pdf
│ └── file3.pdf
└── file1.pdf
我正在尝试 return 所有文件及其相对于当前工作目录(桌面)的路径。根据我上面的例子,我想要:
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
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。