如果我获取目录中的文件数(包含3个文件夹和20个文件),我会分别对listdir和isfile采取以下行为:
>>> len(os.listdir('/home/a/Desktop/Development/'))
23
>>> len(filter(os.path.isfile,os.listdir('/home/a/Desktop/Development/')))
7
再次尝试没有子文件夹的文件夹:
>>> len(os.listdir('/home/a/Desktop/Development/newfolder'))
38
>>> len(filter(os.path.isfile,os.listdir('/home/a/Desktop/Development/newfolder')))
0
为什么listdir不提供与isfile过滤器相同的结果?
答案 0 :(得分:1)
因为os.listdir返回相对路径。例如。如果你有文件a.txt和b.txt,它将返回“a.txt”和“b.txt”。首次运行时非零表示您在pwd中获得了一些具有相同名称的文件。