Python文件查找

作者: 测试_机器猫 | 来源:发表于2018-07-01 21:06 被阅读1次

今天7月1号,周日,学习到了文件模块,就写了一个文件查找的脚本,哈哈,脚本挺强大的额。。。你隐藏的东西都能查得到额。。。

先写一下脚本里面用到的知识

1、字符串拼接

1.1直接使用+进行连接

strName='zhangzichao ' + 'is ' + 'good boy'

print(strName)

结果:zhangzichao is good boy

备注:zhangzichao和is后面都有一个空格

1.2使用join方式连接

strName1=['zhangzichao','is','good boy']

print(''.join(strName))

结果:zhangzichao is good boy

备注:zhangzichao和is后面都没有空格

1.3使用替换方式连接

strName2='%s%s%s' % ('zhangzichao ','is ','good boy')

print(strName2)

结果:zhangzichao is good boy

备注:zhangzichao和is后面都有一个空格

区别:从效率方面来说,如果连接内容很少,推荐使用+方式连接,如果内容比较多,推荐使用替换方式连接,如果是list方式,推荐使用join方式

2、文件夹知识

os.path.abspath(path),显示path在操作系统中的绝对路径

os.path.join(path, x),将path和x拼接成当前操作系统兼容的路径形式

os.listdir(path),输出当前目录下的文件及子目录为list类型

os.path.isdir(path) and os.path.isfile(path)判断路径为目录还是文件,注意参数为path,这里的path是绝对路径

那么接下来看下我的文件路径,file文件夹下面有两个文件夹和两个文件,两个文件夹下面又分别有文件

2.1 listdir读取到一个目录下面所有的文件名,然后使用os.path.join把目录的路径和文件名结合起来,就得到了文件的绝路路径,从下面运行的结果可以看出,如果要得到每个文件listdir是不行的,其实这种方式可以通过递归遍历方式得到,一会脚本里面会有体验

2.2使用os.walk

其中dirPath列出了目录路径 f:\file

dirName列出了目录路径下面所有存在的目录的名称 file下面的两个目录 filex filey

fileNames列出了目录路径下面所有文件的名称

得到目录下的每个文件

那么上面内容理解了,下面看具体脚本,search是递归方式,search1是os.walk函数方式

# 查找某个目录下的目标文件

import os# 引入操作系统模块

import easyguias g# 引入图形用户界面

result_list= []

def search(filePath,fileName):

    for fileNin os.listdir(filePath):

        file_dir= os.path.join(filePath, fileN)

if (os.path.isfile(file_dir))and (fileName in fileN):

            result_list.append(file_dir)

elif os.path.isdir(file_dir):

            search(file_dir,fileName)

def search1(filePath1,fileName):

    for dirPath,dirName,fileNamesin os.walk(filePath1):

        for filenamein fileNames:

            if fileName in filename:

                result_list.append(os.path.join(dirPath,filename))

strPath= 'cdefhjkg'  # 默认盘符

strResult=''

path= g.enterbox(msg='请输入文件所在盘符(如:C').rstrip()

path= path.lower()[0]# 截取输入的第一个字符

if pathin strPath: #判定输入的第一个字符是否为默认盘符内容

    path= path+ ':\\' # 拼接字符串路径格式如:c:\

    name= g.enterbox(msg='请输入您要查找的文件名').rstrip()

search1(path, name)

if result_list.__len__()> 0: #查询到了

        for pathin result_list:

            strResult+= path+'\n'

        g.msgbox(strResult)

else:g.msgbox('没有该文件','没有找到')#没有找到

else:

    g.msgbox('请输入正确的盘符')

相关文章

网友评论

    本文标题:Python文件查找

    本文链接:https://www.haomeiwen.com/subject/ialhuftx.html