我使用python,我需要一个函数或库,在所有驱动器中搜索我的文件,我只给它文件的名称,如F3在Windows中搜索计算机中的所有文件夹.windows os,本地驱动器,我写了一个代码
import os
import win32api
paths = 'D:/'
def dir_list_folder(paths):
for folderName in os.listdir(paths):
if (folderName.find('.') == -1):
folderPath = os.path.join(paths,folderName );
dir_list_folder(folderPath);
else:
print ('Files is :'+ folderName );
Run Code Online (Sandbox Code Playgroud)
它给了我一个很好的结果,但有些类型给我一个错误,如果我不需要搜索.Zip或.RAR文件我怎么能这样做
在Windows上,您将更好地使用os.walk功能.os.walk返回一个递归遍历源树的生成器.下面的示例显示了正则表达式搜索.
import os
import re
import win32api
def find_file(root_folder, rex):
for root,dirs,files in os.walk(root_folder):
for f in files:
result = rex.search(f)
if result:
print os.path.join(root, f)
break # if you want to find only one
def find_file_in_all_drives(file_name):
#create a regular expression for the file
rex = re.compile(file_name)
for drive in win32api.GetLogicalDriveStrings().split('\000')[:-1]:
find_file( drive, rex )
find_file_in_all_drivers( 'myfile\.doc' )
Run Code Online (Sandbox Code Playgroud)
一些说明: