基本思想:用户需求,想通过python对txt文档批量提取有效信息
为了客户数据保密,测试数据做了修改
test.txt
process_file.py
import os
import openpyxl
import tkinter as tk
from tkinter import filedialog
def select_folder():
folder_path = filedialog.askdirectory()
folder_path_var.set(folder_path)
def start_filtering():
folder_path = folder_path_var.get()
txt_files = [file for file in os.listdir(folder_path) if file.endswith(".txt")]
wb = openpyxl.Workbook()
ws = wb.active
# 写入Excel的表头
header = [""]
for i in range(1, 6): # 根据需求提取的值数量,这里设置为5
header.append(f"min")
header.append(f"max")
ws.append(header)
for txt_file in txt_files:
with open(os.path.join(folder_path, txt_file), "r") as f:
lines = f.readlines()
values1 = []
values2 = []
for line in lines:
if target_field1 in line:
parts = line.split()
for i in range(1,6):
if (len(parts) > 1):
values1.append(parts[i])
else:
values1.append("N/A")
if target_field2 in line:
parts = line.split()
for i in range(1,6):
if (len(parts) > 1):
values2.append(parts[i])
else:
values2.append("N/A")
if values1 is not None and values2 is not None:
file_name = os.path.splitext(txt_file)[0]
ws.append([file_name,
values1[0], values2[0],
values1[1], values2[1],
values1[2], values2[2],
values1[3], values2[3],
values1[4], values2[4]])
excel_file = "output.xlsx"
wb.save(excel_file)
result_label.config(text=f"信息已写入 {excel_file}")
# 定义要提取的字段
target_field1 = "Minimum"
target_field2 = "Maximum"
# 创建GUI窗口
root = tk.Tk()
root.title("Txt文件筛选工具")
# 设置初始窗口大小
root.geometry("600x400")
# 创建选择文件夹的按钮和标签
folder_path_var = tk.StringVar()
folder_label = tk.Label(root, text="选择文件夹:")
folder_label.pack()
folder_entry = tk.Entry(root, textvariable=folder_path_var, width=50)
folder_entry.pack()
select_button = tk.Button(root, text="选择文件夹", command=select_folder, width=20)
select_button.pack()
# 创建开始筛选的按钮
start_button = tk.Button(root, text="开始筛选", command=start_filtering, width=20)
start_button.pack()
# 显示结果的标签
result_label = tk.Label(root, text="")
result_label.pack()
# 启动GUI事件循环
root.mainloop()
运行界面
获取结果
打包exe文件
1.打开cmd输入这段代码安装pyinstaller
pip install pyinstaller
C:\Users\win10>cd Desktop/
C:\Users\win10\Desktop>cd test/
2. 生成exe文件
C:\Users\win10\Desktop\test>pyinstaller -F -w process_file.py