我有一个这样的目录:
Main Directory
- Subdirectory
- subfile1
- subfile2
- file1
- file2
当我做清单时。我看到的输出如下:
arr=os.listdir(.)
-Subdirectory1, file1, File2
如何获得输出:
./file1
./file2
.subdirectory1/subfile1
.subdirectory1/subfile2.
基本上我也在目录中寻找文件名。我也在寻找完整的路径。
如果有任何我可以使用的功能,请告诉我吗?
答案 0 :(得分:1)
查看os.walk
这会产生类似示例的输出。当前目录.
用作示例:
for path, dirs, files in os.walk('.'):
for file in files:
print(os.path.join(path,file))
如果你想要绝对路径(在Linux上以/开头或在Windows上以\开头),请以绝对路径名开头。
答案 1 :(得分:0)
您可以使用以下代码获取MainDirectory
中所有文件的列表:
import sys,os
MainDirectory = "/tmp/"
filesList = list()
for path, subdirs, files in os.walk(MainDirectory):
for name in files:
filesList.append(os.path.join(path, name))
然后filesList
列表包含该目录及其子目录中的所有文件。
答案 2 :(得分:0)
使用Python> = 3.4,您可以执行以下操作:
>>> from pathlib import Path
>>> for item in Path('c:/scratch').glob('**/*'):
... str(item.absolute())
...而且pathlib也提供了更多好东西。