iampigeon

用python查找文件

查找特定路径下的文件

点击查看代码
import os
# 显示当前路径
路径=os.getcwd()
print(路径)
for 文件 in os.scandir(放入要查询的目录):

#这个方法遍历文件比较快,比较好用 #文件.name查询文件名字,文件.path查询文件路径,还有其他方法可以查询文件的其他信息,很方便的

找特定后缀名的文件

方法一:使用切片操作

点击查看代码
列表=[]
    for 文件名 in 文件:
        点的位置=文件名.rfind('.')#找点的位置
        if 文件名[点的位置:]=='.xlsx':#切片处理,从点的位置一直到最后
            列表.append(文件名)# 放入一个列表里
print(f'Excel文件共{len(列表)},分别是{列表}')

方法二:使用os包下的startswith,endswith方法

点击查看代码
import os
for 文件夹, 子文件夹, 文件 in os.walk('D:\无名字的文件夹'):
    print(文件夹)#walk方法是一种比较好的遍历文件夹的方法,可以遍历出文件,子文件夹
*********************
import os
for i in os.scandir('D:\无名字的文件夹'):
    if i.name.startswith('大数据'):#找出文件夹中以什么为开头的元素,同样的还有endswith()方法
        print(i.name)

方法三:使用glob包

点击查看代码
import glob #查找文件 的包
import os
os.chdir('D:\无名字的文件夹')
print(glob.glob('大数据*'))#以什么开头的,星号放在后面
print(glob.glob('*docx'))#以什么结尾的,星号放在前面
print(glob.glob('大数据*/*',recursive=True))#获取子文件夹下以什么开头的文件,要用到'**/*'的形式,同时要有recursive=True
#glob.iglob方法出来的是一个可迭代对象,不占内存,但其他效果是一样的

方法四:使用fnmatch包

点击查看代码 ``` import os import fnmatch# 也是文件查找,返回的是true,false可用于if条件语句 dir=os.listdir('D:\无名字的文件夹') for i in dir: #print(i,fnmatch.fnmatch(i,'*docx')) if fnmatch.fnmatch(i,'*docx'):#只打印为真的文件 print(i) ```
文章是我看孙兴华老师的视频记得笔记哦

posted on 2023-05-24 21:05  阿苏勒的吕归尘  阅读(854)  评论(0编辑  收藏  举报

导航