Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 8 在Python3中搜索文件的有效方法_Windows 8_Search_Mp3_Python 3.x - Fatal编程技术网

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内置命令快