python脚本查找txt文本中指定文字及上下文

心血来潮写了个小工具,可以查找并保存txt文本中指定文字所在行及上下文,超出的部分不会显示,上下文行数可以更改。如果没有查到会直接显示查找完成,生成的保存文档里也什么没有。
主要使用python的file方法实现。
代码如下:

#encoding utf-8

fo = open('E:\\txtseeker\\test.txt','r',encoding='UTF-8')       #打开目标文件
fw = open('E:\\txtseeker\\testw.txt','w',encoding='UTF-8')      #新建文件保存结果
line = fo.readlines()

cnt = 0
for i in line:
    if 'd' in i:
        if 2<cnt+1<=len(line):
            # 打印目标行及上下两行的文字
            print("原文件行号:",cnt+1)
            print(line[cnt-2
  • 4
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 你可以使用正则表达式来查找txt文本的数字。下面是一个示例代码: ``` import re with open('text.txt', 'r') as f: text = f.read() numbers = re.findall(r'\d+', text) print(numbers) ``` 这段代码会打开名为`text.txt`的文件,读取其内容,使用正则表达式`\d+`查找所有数字,最后将结果输出到控制台。 ### 回答2: 在Python,可以使用正则表达式或字符串操作来查找文本的数字。 1. 使用正则表达式: 可以使用re模块的findall方法来匹配文本的数字。 ```python import re # 打开文本文件 with open('file.txt', 'r') as f: text = f.read() # 使用正则表达式匹配数字 numbers = re.findall(r'\d+', text) # 打印匹配到的数字 for number in numbers: print(number) ``` 2. 使用字符串操作: 可以使用字符串的isdigit方法来判断字符串是否为数字,并将其提取出来。 ```python # 打开文本文件 with open('file.txt', 'r') as f: text = f.read() # 遍历文本的每个字符 number = '' for char in text: # 如果字符是数字,则添加到number字符串 if char.isdigit(): number += char # 如果字符不是数字且number字符串不为空,则将number打印出来,并重置为'' elif number: print(number) number = '' # 如果number字符串不为空,则打印 if number: print(number) ``` 以上两种方法都能找到文本的数字,并将其打印出来。根据具体的需求,可以选择适合的方法来处理文本的数字。 ### 回答3: 要在txt文本查找数字,可以使用Python的正则表达式(re模块)来实现。以下是一个示例代码: ```python import re # 打开txt文件 with open("data.txt", "r") as file: # 读取文件内容 content = file.read() # 使用正则表达式查找数字 numbers = re.findall(r"\d+", content) # 输出找到的数字 for number in numbers: print(number) ``` 首先,我们使用`open()`函数打开要读取的txt文件,并使用`read()`方法读取文件内容,并将其存储在变量`content`。 接下来,我们使用`re.findall()`函数和正则表达式模式`"\d+"`来查找所有连续的数字。这个正则表达式模式表示匹配一个或多个数字。 然后,我们将找到的数字存储在变量`numbers`,它是一个包含所有数字的列表。 最后,我们使用`for`循环遍历`numbers`列表,将每个数字打印输出。 注意:以上示例仅限于找到所有连续的数字,并打印输出。如果需要更复杂的数据处理或特定条件下的数字查找,请对正则表达式模式进行适当修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值