所以,这是我的小程序。它应该打印给定目录中的所有文件+每个子目录中的所有文件。
import os
def listFiles(directory):
dirList = os.listdir(directory)
printList = []
for i in dirList:
i = os.path.join(directory,i)
# print(i)
if os.path.isdir(i):
printList[len(dirList):] = listFiles(i)
else:
printList.append(i)
return printList
directory = 'C:\Python32\Lib'
listFiles(directory)
a = listFiles(directory)
for i in a:
print(i)
有什么问题: os.path.isdir(i) 无法正常工作 - 例如,如果我尝试
os.path.isfile('C:\Python32\Lib\concurrent\futures\process.py')
os.path.exists('C:\Python32\Lib\concurrent\futures\process.py')
os.path.isdir('C:\Python32\Lib\concurrent\futures')
我总是得到 False 而不是 True (它适用于某些子目录)。如果我取消注释 print(i) 它会打印所有内容,但它也会打印目录 - 我只想打印文件。我应该怎么办?