我正在尝试创建一个查看特定目录的脚本,然后列出我所选类型的所有文件以及原始位置中的所有文件夹。
我已经管理了列出所选类型的所有文件的第一部分,但遇到了列出文件夹的问题。
我的代码是:
import datetime, os
now = datetime.datetime.now()
myFolder = 'F:\\'
textFile = 'myTextFile.txt'
outToFile = open(textFile, mode='w', encoding='utf-8')
filmDir = os.listdir(path=myFolder)
for file in filmDir:
if file.endswith(('avi','mp4','mkv','pdf')):
outToFile.write(os.path.splitext(file)[0] + '\n')
if os.path.isdir(file):
outToFile.write(os.path.splitext(file)[0] + '\n')
outToFile.close()
它已成功列出所有avi / mp4 / mkv / pdf文件,但即使我的F:目录中有多个文件夹,也不会进入if os.path.isdir(file):
。
非常感谢任何帮助。即使它建议一种更有效/更有效的方法来完成这项工作。
感谢海滩之子的解决方案
if os.path.isdir(file):
更改为
if os.path.isdir(os.path.join(myFolder, file)):
答案 0 :(得分:0)
os.listdir
返回文件的名称,而不是文件的完全限定路径。
您应该在os.path.isdir()
中使用完全限定的路径名称(除非您已经告诉Python在哪里查看)。
例如,您可以使用:{/ p>而不是if os.path.isdir(file):
if os.path.isdir(os.path.join(myFolder, file)):