获取目录中所有文件的绝对路径
os.path.abspath
确保路径是绝对的。使用下面的辅助函数:
import os
def absoluteFilePaths(directory):
for dirpath,_,filenames in os.walk(directory):
for f in filenames:
yield os.path.abspath(os.path.join(dirpath, f))
import os
for root, dirs, files in os.walk(os.path.abspath("../path/to/dir/")):
for file in files:
print os.path.join(root, file)
好吧,我明白你的意思,只是我不想要这些文件,但想要特定的子目录。我已经发布了下面的解决方案。 – 2016-02-19 10:25:34
您可以使用os.path.abspath()
把相对路径到绝对路径:
file_paths = []
for folder, subs, files in os.walk(rootdir):
for filename in files:
file_paths.append(os.path.abspath(os.path.join(folder, filename)))
尝试:
import os
for root, dirs, files in os.walk('.'):
for file in files:
p=os.path.join(root,file)
print p
print os.path.abspath(p)
print
无论如何要做到这一点,而不捕获隐藏的文件? – 2013-12-12 19:11:56
@MarcelMarino'如果不是file.startswith('。')' – 2015-10-28 20:46:41
我想保持子目录的细节,而不是文件,并希望只在他们一个XML文件子目录。我能做到这样:
for rootDirectory, subDirectories, files in os.walk(eventDirectory):
for subDirectory in subDirectories:
absSubDir = os.path.join(rootDirectory, subDirectory)
if len(glob.glob(os.path.join(absSubDir, "*.xml"))) == 1:
print "Parsing information in " + absSubDir
如果你有Python的3.4或更新版本,您可以使用pathlib
(或第三方反向移植,如果你有一个旧的Python版本):
import pathlib
for filepath in pathlib.Path(directory).glob('**/*'):
print(filepath.absolute())
可不可以给一个你期望什么输入和输出的例子 – cwallenpoole 2012-03-22 05:18:59