python 文件内搜索关键词并保存行号

该博客介绍了一个使用Python进行文件内搜索关键词的功能,同时记录关键词所在行号。通过多线程技术提高搜索效率,用户可自定义线程数量,并将结果保存到指定路径。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

main(DirPath , KeyWord ,OutputPath ,THREAD_NUM)

在DirPath文件夹内搜索KeyWord ,并将搜索结果(KeyWord 所在的行号)保存在OutputPath 中

采用多线程实现,线程数可以自己设置THREAD_NUM

#! /usr/bin/env python
# endcoding:utf-8
import os ,sys,time
import threading

FileState = 0
def GetAllFilesList(dirPath):
    fileList = []
    for root, dirs, files in os.walk(dirPath):
        for fileObj in files:  
            fileList.append(os.path.join(root,fileObj))
    return fileList

def searchStrInFile(FilePath , KeyWord , OutputPath ):
    global FileState
    f = open(FilePath , "r")
    content = f.readlines()
    f.close()
    searchRecordList = []
    for line,ele in enumerate(content):
        if KeyWord in ele:
            searchRecordList.append(line+1)   
#    searchRecordList = [line+1 for line,ele in enumerate(content) if KeyWord in ele]
    if len(searchRecordList) :
#        print Fi
在多个文本文件搜索特定词语记录相关信息通常涉及遍历文件取内容、然后检查是否存在指定的关键词。这可以通过编程语言如Python来实现,使用内置的`os`模块来查找文件,`open()`函数文件内容,然后使用正则表达式或者字符串操作来进行匹配。 下面是一个简单的步骤概述: 1. 首先,创建一个函数,接受搜索词作为参数。 2. 使用`os.walk()`遍历指定目录及其所有子目录中的文件。 3. 对每个找到的`.txt`或其他文本文件,打开逐行取。 4. 检查每一行是否包含搜索词,如果找到,就记录文件名和包含该词的那行。 5. 打印或保存结果到另一个文件或者数据结构(如列表)。 以下是伪代码示例: ```python import os def search_words_in_files(search_word, root_directory): results = [] for dirpath, dirnames, filenames in os.walk(root_directory): for filename in filenames: if filename.endswith(".txt"): # 只处理文本文件 file_path = os.path.join(dirpath, filename) with open(file_path, 'r', encoding='utf-8') as f: for line_num, line in enumerate(f, start=1): # 从1开始计数行号 if search_word in line: results.append({ "file": file_path, "line": f"Line {line_num}: {line.strip()}" }) return results # 示例用法 search_results = search_words_in_files("目标词语", "/path/to/search/directory") for result in search_results: print(f"{result['file']}\n{result['line']}\n---\n")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值