python 之遍历文件夹下的所有文件并查找特定内容

在使用python 编写自动化脚本时需要对特定数据进行处理,那么如何在某文件夹下查找特定数据呢?
代码如下:

import os
path = os.getcwd()
files = os.listdir(path)
print files
for file in files:

    logfile = open(file,"r")
    lines = logfile.readlines()
    for line in lines:
        if line.find("111") != -1:
            print "111 exist in file:" + file
        elif line.find("222") != -1:
            print "222 exist in file:" + file

运行结果:
在这里插入图片描述

可以看到,test.py 脚本中的数据也被读取了,这对于数据分析来说显然是不合理的,那么就需要对需处理的文件进行判断,即仅检查txt文件:

import os
path = os.getcwd()
files = os.listdir(path)
print files
for file in files:
    if file.split(".")[1] == "txt":
        logfile = open(file,"r")
        lines = logfile.readlines()
        for line in lines:
            if line.find("111") != -1:
                print "111 exist in file:" + file
            elif line.find("222") != -1:
                print "222 exist in file:" + file

在这里插入图片描述

  • 0
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
Python中,要打开并遍历文件夹,你可以使用以下函数和库: 1. os 模块:提供了与操作系统交互的功能,包括文件文件夹的操作。你可以使用 os 模块中的函数来获取文件夹中的文件列表、创建新文件夹等。 - `os.listdir(path)`:返回指定路径下的文件文件夹列表。 - `os.path.join(path, *paths)`:将多个路径组合成一个完整的路径。 - `os.path.isdir(path)`:检查给定路径是否为文件夹。 2. glob 模块:用于查找符合特定模式的文件路径名。它使用了类似于正则表达式的模式匹配来查找文件。 - `glob.glob(pathname)`:返回所有匹配指定模式的文件路径列表。 3. pathlib 模块:提供了更简洁、面向对象的方式来处理文件文件夹路径。 - `pathlib.Path(path)`:创建一个 Path 对象,表示给定路径。 - `Path.iterdir()`:返回一个迭代器,用于遍历目录中的所有项。 下面是一个示例代码,演示如何使用这些函数和库来打开并遍历文件夹: ```python import os import glob from pathlib import Path # 使用 os 模块 folder_path = 'path/to/folder' # 列出文件夹中的所有文件文件夹 file_list = os.listdir(folder_path) for file_name in file_list: file_path = os.path.join(folder_path, file_name) if os.path.isdir(file_path): print(f'{file_name} 是文件夹') else: print(f'{file_name} 是文件') # 使用 glob 模块 pattern = 'path/to/folder/*.txt' # 获取匹配指定模式的文件列表 file_list = glob.glob(pattern) for file_path in file_list: print(file_path) # 使用 pathlib 模块 folder_path = Path('path/to/folder') # 遍历目录中的所有项 for item in folder_path.iterdir(): if item.is_dir(): print(f'{item.name} 是文件夹') else: print(f'{item.name} 是文件') ``` 请注意,以上只是一些常用的函数和库,你还可以根据具体需求选择其他适合的函数和库。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值