写一个随机抽取x本txt的脚本,每天随机抽取20本txt,用正则匹配看下txt里是否有什么badcase(包含版本信息,广告,公式错乱,乱码等),输出xlsx: 第一列: txt完整路径,第二列:txt文件名, 第三列:什么问题,第四列:第几行发现的,如果没问题的,二三四列可以不填,有问题的,填一下。 windows环境 库已安装好
时间: 2023-12-10 16:05:35 浏览: 67
好的,我理解了你的要求,以下是一个Python脚本实现你的需求:
```python
import os
import random
import re
import openpyxl
# 设置需要抽取的txt数量和每天需要抽取的txt数量
total_txts = 50
daily_txts = 20
# 设置需要匹配的正则表达式
badcase_pattern = r"(版本信息)|(广告)|(公式错乱)|(乱码)"
# 创建一个Excel文件,并设置表头
wb = openpyxl.Workbook()
ws = wb.active
ws.append(['txt完整路径', 'txt文件名', '问题', '行数'])
# 遍历目录下的所有txt文件
txts = [f for f in os.listdir('.') if os.path.isfile(f) and f.endswith('.txt')]
for i in range(daily_txts):
# 随机选择一些txt文件
selected_txts = random.sample(txts, total_txts)
for txt in selected_txts:
with open(txt, 'r', encoding='utf-8') as f:
lines = f.readlines()
for j, line in enumerate(lines):
# 检查每一行是否匹配到了badcase_pattern
match = re.search(badcase_pattern, line)
if match:
# 如果匹配到了,将信息写入Excel文件
ws.append([os.path.abspath(txt), os.path.basename(txt), match.group(), j+1])
# 保存Excel文件
wb.save('badcase.xlsx')
```
你可以修改 `total_txts` 和 `daily_txts` 的值来满足你的需求。同时,你也可以修改 `badcase_pattern` 来匹配你需要查找的不良信息。
请将这个脚本保存为 `find_badcase.py`,并在你的 Windows 环境中运行它,它将在当前目录下生成一个名为 `badcase.xlsx` 的 Excel 文件,其中包含了每天随机抽取的20个txt文件的不良信息。
阅读全文