写一个随机抽取x本txt的脚本,每天随机抽取20本txt,看下txt里是否有什么badcase(包含版本信息,广告,公式错乱,乱码等),输出xlsx: 第一列: txt完整路径,第二列:txt文件名, 第三列:什么问题,第四列:第几行发现的,如果没问题的,二三四列可以不填,有问题的,填一下。 windows环境 库已安装好
时间: 2023-12-07 20:03:18 浏览: 83
好的,我已经理解了你的要求。下面是一个Python脚本,可以实现每天随机抽取指定数量的txt文件,并检查其中是否存在badcase,并将结果输出到xlsx文件中。
```python
import os
import random
import openpyxl
import re
# 设置每天要随机抽取的txt数量
NUM_TXT = 20
# 设置需要排除的badcase
BAD_CASES = [
"版本信息",
"广告",
"公式错乱",
"乱码"
]
# 获取指定目录下的所有txt文件
def get_txt_files(dir_path):
txt_files = []
for root, dirs, files in os.walk(dir_path):
for file in files:
if file.endswith(".txt"):
txt_files.append(os.path.join(root, file))
return txt_files
# 随机抽取指定数量的txt文件
def random_sample(txt_files, num):
return random.sample(txt_files, num)
# 检查txt文件是否存在badcase
def check_txt_file(txt_file):
issues = []
with open(txt_file, encoding="utf-8") as f:
for i, line in enumerate(f, start=1):
for bad_case in BAD_CASES:
if bad_case in line:
issues.append((txt_file, os.path.basename(txt_file), bad_case, i))
break
return issues
# 将检查结果输出到xlsx文件中
def write_to_xlsx(issues):
wb = openpyxl.Workbook()
ws = wb.active
ws.append(["文件路径", "文件名", "问题", "行号"])
for issue in issues:
ws.append(issue)
wb.save("check_result.xlsx")
if __name__ == "__main__":
# 设置txt文件所在目录
txt_dir = "/path/to/txt/dir"
# 获取txt文件列表
all_txt_files = get_txt_files(txt_dir)
# 随机抽取指定数量的txt文件
random_txt_files = random_sample(all_txt_files, NUM_TXT)
# 检查每个txt文件
issues = []
for txt_file in random_txt_files:
txt_issues = check_txt_file(txt_file)
issues.extend(txt_issues)
# 将检查结果输出到xlsx文件中
write_to_xlsx(issues)
```
你只需要将代码中的`/path/to/txt/dir`替换为你存放txt文件的目录即可使用。同时,你可以根据需要调整每天需要随机抽取的txt数量和需要排除的badcase列表。
阅读全文