Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 递归os.listdir?_Python_Directory - Fatal编程技术网

Python 递归os.listdir?

Python 递归os.listdir?,python,directory,Python,Directory,我想递归地得到一个目录中所有文件的列表,没有目录 假设有一个目录~/files,里面有“a.txt”、“b.txt”,还有一个目录“c”,里面有“d.txt”和“e”,里面有“f.txt”。我如何获得一个类似于['/home/user/files/a.txt'、'/home/user/files/b.txt'、'/home/user/files/c/d.txt'、'/home/user/files/c/e/f.txt']的列表?您指定的d.txt和f.txt的路径不存在,因此…@roippi修复

我想递归地得到一个目录中所有文件的列表,没有目录


假设有一个目录
~/files
,里面有“a.txt”、“b.txt”,还有一个目录“c”,里面有“d.txt”和“e”,里面有“f.txt”。我如何获得一个类似于
['/home/user/files/a.txt'、'/home/user/files/b.txt'、'/home/user/files/c/d.txt'、'/home/user/files/c/e/f.txt']
的列表?

您指定的
d.txt
f.txt
的路径不存在,因此…@roippi修复,感谢下面的第二个答案,只需删除打印目录名称,因为这是一个常见问题解答。重复的答案是关于os.walk和glob.glob的。所以,这些并不能回答这个问题。这个问题是关于os.listdir的。为什么?因为测试显示os.listdir创建文件列表的速度比os.walk和glob.glob快。谢谢。将
“~/files”
替换为
os.path.expanduser(“~/files”)
。否则,它将找到literal
~
目录而不是home目录。@falsetru,说得好。谢谢
import os
[os.path.join(dp, f) for dp, dn, fn in os.walk(os.path.expanduser("~/files")) for f in fn]