如何用 Python 模糊搜索文件
一、我的文件在哪里?
1、告诉计算机文件在哪
使用路径描述位置
绝对路径——从根目录写到底
内置模块OS
路径
目录
文件
其他系统操作
2、描述文件的特征
用条件判断来筛选
3、对比后打印文件名
用循环来实现逐个比对,素材链接:https://files.cnblogs.com/files/Lamfai/script_project1_files.zip
import os
# 路径(鼠标右键查看文件属性)
path = 'C:/Users/Lamfai/Desktop/files'
files = os.listdir(path)
# 查找文件名字含有fish且以.png后缀的文件
for f in files:
if 'fish' in f and f.endswith('.png'):
print('Found it!' + f)
4、使用 Python 从这中筛选出符合这些特征的文件:
(1) 除了 gif 类型之外的其他类型 ;
(2) 名字中包含有关键词 “project30”或者“commercial”。
素材链接:https://files.cnblogs.com/files/Lamfai/files.zip
# 使用 Python 从这中筛选出符合这些特征的文件:
# 1. 除了 gif 类型之外的其他类型
# 2. 名字中包含有关键词 “project30”或者“commercial”
import os
# 路径(设置 path 变量,存储路径)
path = 'C:/Users/Lamfai/Desktop/files'
# 利用 os 模块中的 listdir 函数,将路径中的所有文件存储到一个 list 变量中。
files = os.listdir(path)
# 查找文件名字含有关键词 “project30”或者“commercial”且不以gif后缀的文件
# 利用 for 语句浏览 list 变量中的所有元素
for f in files:
# 利用 if 语句判断文件名是否符合要求。其中, endswitch 函数用来判断一个字符串是否包含某个后缀。
# 成员运算符 in 用来判断一个字符串是否包含某个子串。不同的条件用 and 或者 or 来连接。
if (not f.endswith('.gif')) and ('project30' in f or 'commercial' in f):
print('Found it!' + f)
提示:
1、出现报错 No such file or directory 怎么办?No such file or directory 的含义是不存在这个文件或路径,可能是以下几个原因造成的:
(1)电脑上没有这个文件夹。文件夹的名字包括大小写需完全一致。
(2)路径不对。绝对路径的写法有三种:
①正斜线。C:/Users/Lamfai/Desktop/files
②两个反斜线。C:\\Users\\Lamfai\\Desktop\\files
③在路径外面加 r 。r'C:\Users\Lamfai\Desktop\files'
(3)没有在本地运行代码。
(4)使用相对路径没有把 .py 文件放到要处理的文件夹内。