python查找文件和文件夹
精确查找的意思是只列出名称与指定关键词完全相同的文件或文件夹。
使用Path()函数创建路径对象
使用路径对象的exists()函数和is_dir()函数判断用户输入的路径是否存在并且是否为文件夹
from pathlib import Path while True: folder = input('请输入要在哪个文件夹(如【D:\\】或【D:\\案例\\】)下进行查找:') #先输入查找的范围,即要在哪个文件夹下进行查找;再输入查找的关键词,即文件或文件夹的准确名称 folder = Path(folder.strip()) if folder.exists() and folder.is_dir(): break else: print('输入的路径不存在或不正确,请重新输入!') keyword = input('请输入要查找的文件或文件夹的名称:').strip() #先使用strip()函数删除用户输入的字符串首尾的空格,以减少用户可能的误操作对运行结果的影响 result = list(folder.rglob(keyword)) #使用路径对象的rglob()函数在用户输入的路径下查找名称与指定关键词完全相同的文件和子文件夹,并使用list()函数将查找结果转换为列表,以便进行后续的结果输出。 if len(result) != 0: #利用len()函数判断查找结果是否为空 print(f'在【{folder}】下查找到以下名为【{keyword}】的文件或文件夹:') for i in result: print(i) else: print(f'在【{folder}】下未查找到名为【{keyword}】的文件或文件夹!')break语句会强制结束整个循环,continue语句则只终止本轮循环,紧接着还会继续执行下一轮循环
使用上述代码时需要注意,输入查找范围时最好不要遗漏末尾的“\”,输入查找关键词时尽量不要输入多余的空格,否则可能会导致查找不到结果
模糊查找文件和文件夹
第10行代码,这里因为要进行模糊查找,所以在调用rglob()函数时,在关键词的前后添加了通配符“*”。
先将查找结果分为文件和文件夹两类,再分别输出.
from pathlib import Path while True: folder = input('请输入要在哪个文件夹(如【D:\\】或【D:\\案例\\】)下进行查找:') folder = Path(folder.strip()) if folder.exists() and folder.is_dir(): break else: print('输入的路径不存在或不正确,请重新输入!') keyword = input('请输入要查找的文件或文件夹的名称:').strip() result = list(folder.rglob(f'*{keyword}*')) if len(result) == 0: print(f'在【{folder}】下未查找到名称包含关键词【{keyword}】的文件或文件夹!') else: #对结果进行分类输出 result_folder = [] #存放查找到的文件夹和文件 result_file = [] #存放查找到的文件 for i in result: if i.is_dir(): result_folder.append(i) else: result_file.append(i) if len(result_folder) != 0: print(f'在【{folder}】下查找到以下名称包关键词【{keyword}】的文件夹:') for i in result_folder: print(i) if len(result_file) != 0: print(f'在【{folder}】下查找到以下名称包含关键词【{keyword}】的文件:') for i in result_file: print(i)使用路径对象的is_dir()函数判断查找结果中的路径指向的是否是文件夹。如果指向的是文件夹,则将路径添加到存放文件夹的列表中;如果指向的不是文件夹,则将路径添加到存放文件的列表中。
python基础工程师 文章被收录于专栏
python基础语法+做算法题的应用+python自动化办公+pymysql+python网络爬虫