请问如何用python实现查找指定文件?

发布网友 发布时间:2022-04-23 00:43

我来回答

4个回答

懂视网 时间:2022-04-18 18:27

这篇文章主要介绍了Python实现的根据文件名查找数据文件功能,涉及Python针对文件与目录的遍历、查询等相关操作技巧,需要的朋友可以参考下

本文实例讲述了Python实现的根据文件名查找数据文件功能。分享给大家供大家参考,具体如下:

#-*- coding: UTF-8 -*-
import os
import shutil
AllFiles=[]
NameFiles=[]
def findFie(filePath):
 pathDir = os.listdir(filePath)
 for allDir in pathDir:
 # print(allDir)
 AllFiles.append(allDir)
 #pass
#filepath = 'C:UsersIBM_ADMINDesktopcognosdatastage71&727171sns'
#copyfile = 'C:UsersIBM_ADMINDesktopcognosdatastage71&7271mtp'
filepath = 'C:UsersIBM_ADMINDesktopcognosdatastage71&727272sns'
copyfile = 'C:UsersIBM_ADMINDesktopcognosdatastage71&7272mtp'
shutil.rmtree(copyfile)
os.mkdir(copyfile)
findFie(filepath)
def readFile():
 readFile = open('./jobname')
 i = 0
 for eachLine in readFile:
 i= i + 1
 #print(eachLine)
 NameFiles.append(eachLine.replace('
','')) # 去掉换行符
readFile()
#字符串比较
def doTheCompare():
 for x in NameFiles:
 print(x)
 for y in AllFiles:
 if x == y :
 copyFrom = os.path.join(filepath,x)
 copyTo = os.path.join(copyfile,x)
 shutil.copyfile(copyFrom,copyTo)
 else:
 pass
 #print ("file not find under sns process,thanks .please check with wumi.")
doTheCompare()

附:这里再补充一个更为简单的文件搜索功能示例:

# -*- coding:utf-8 -*-
import os
def search(path=".", name="1"):
 for item in os.listdir(path):
 item_path = os.path.join(path, item)
 if os.path.isdir(item_path):
 search(item_path, name)
 elif os.path.isfile(item_path):
 if name in item:
 print(item_path)
if __name__ == "__main__":
 search(path=r"D:360Downloads",name="dll")

热心网友 时间:2022-04-18 15:35

若不包含子目录的遍历:

import glob

for filename in glob.glob("f:/py/*.exe"):
    print filename

否则可以:

import os
import fnmatch

def iterfindfiles(path, fnexp):
    for root, dirs, files in os.walk(path):
        for filename in fnmatch.filter(files, fnexp):
            yield os.path.join(root, filename)

for filename in iterfindfiles(r"f:/py", "*.exe"):
    print filename

热心网友 时间:2022-04-18 16:53

glob模块或者遍历目录加endswith方法

热心网友 时间:2022-04-18 18:28

glob模块

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com