Windows 8 在Python3中搜索文件的有效方法
您好,我正在尝试搜索我计算机上的所有Windows 8 在Python3中搜索文件的有效方法,windows-8,search,mp3,python-3.x,Windows 8,Search,Mp3,Python 3.x,您好,我正在尝试搜索我计算机上的所有.mp3文件,我有一个代码,它的文件类型为.mp3,.txt,etc作为一个输入,文件夹路径作为另一个输入,搜索指定路径中的所有子文件夹和文件夹本身中的文件类型,并在列表中返回文件的路径。如果文件夹有这么多子文件夹,或者如果我为“路径”输入驱动器名,则这需要一些时间。我需要一个有效的方法来做到这一点。如果我先搜索文件夹中的所有子文件夹,然后将子文件夹路径传递给函数,它会运行得更快吗 import os import fnmatch def find(pat
.mp3
文件,我有一个代码,它的文件类型为.mp3
,.txt
,etc作为一个输入,文件夹路径作为另一个输入,搜索指定路径中的所有子文件夹和文件夹本身中的文件类型,并在列表中返回文件的路径。如果文件夹有这么多子文件夹,或者如果我为“路径”输入驱动器名,则这需要一些时间。我需要一个有效的方法来做到这一点。如果我先搜索文件夹中的所有子文件夹,然后将子文件夹路径传递给函数,它会运行得更快吗
import os
import fnmatch
def find(pattern, path):
result = []
for root, dirs, files in os.walk(path):
for name in files:
if fnmatch.fnmatch(name, pattern):
result.append(os.path.join(root, name))
return result
我认为这是足够有效的。。。 命令
where.exe/rc:\*.mp3
将执行与python脚本相同的操作。
您的脚本甚至比内置的windows命令更快,因此应该足够高效。
我不知道这是否是你的问题,如果不是,我想不清楚你真正的意思
顺便说一下,您可以使用此代码实时打印结果:
导入操作系统
导入fnmatch
def查找(模式、路径):
对于os.walk(路径)中的根、目录和文件:
对于文件中的名称:
如果fnmatch.fnmatch(名称、模式):
生成os.path.join(根,名称)
不同之处在于,如果你这样做
查找中的i('*.mp3',C:\\')的
印刷品(一)
它将尽可能快地打印每个结果。
操作完成后,脚本将返回整个列表,而此脚本将直接打印
我不知道如何更好地解释它,因为我的英语不是最好的,但你可以试试看,看看有什么不同
顺便说一下,它仍然比windows内置命令快