如何用 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'

    参考020100_01——绝对路径与相对路径

  (3)没有在本地运行代码。

  (4)使用相对路径没有把 .py 文件放到要处理的文件夹内。

 

posted @ 2018-08-01 17:24  Lamfai  阅读(12729)  评论(0编辑  收藏  举报