列出特定文件类型和目录的文件

时间:2016-12-21 02:17:00

标签: python-3.x

我正在尝试创建一个查看特定目录的脚本,然后列出我所选类型的所有文件以及原始位置中的所有文件夹。

我已经管理了列出所选类型的所有文件的第一部分,但遇到了列出文件夹的问题。

我的代码是:

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)):

1 个答案:

答案 0 :(得分:0)

os.listdir返回文件的名称,而不是文件的完全限定路径。

您应该在os.path.isdir()中使用完全限定的路径名​​称(除非您已经告诉Python在哪里查看)。

例如,您可以使用:{/ p>而不是if os.path.isdir(file):

if os.path.isdir(os.path.join(myFolder, file)):
相关问题