背景介绍
Tkinter是Python标准的图形用户界面库,适用于创建窗口、按钮、文本输入框等GUI元素。本程序通过Tkinter实现一个核心功能:
1. 读取本地文本文件并保存内容
2. 显示日志记录
程序通过对话框实现用户输入,保存内容后自动保存到output.txt,同时记录日志到log.txt,并通过文件流实现内容的持久化。
技术思路
- 使用
tkinter.Tk创建窗口,包含输入框、保存按钮和日志显示区域 - 输入框接收文件路径,保存按钮执行文件写入操作
- 日志显示区域记录每次保存的内容
- 使用
filedialog模块实现文件路径的对话框 - 文件处理通过
open函数读写文本文件
代码实现
import tkinter as tk
def save_file_and_log(path, content):
try:
with open(path, 'w') as f:
f.write(content)
print(f"保存文件:{path}")
# 日志记录
with open('log.txt', 'a') as log:
log.write(f"【文件信息】\n文件路径:{path}\n内容:{content}\n时间:{datetime.now().strftime('%Y-%m-%d %H:%M')}\n")
except Exception as e:
print(f"文件操作失败: {e}")
def main():
root = tk.Tk()
root.title('文件读写及日志记录')
# 输入框
path_input = tk.Entry(root, width=30)
path_input.grid(row=1, column=0, padx=5, pady=5)
# 保存按钮
save_button = tk.Button(root, text='保存文件', command=lambda path= path_input.get():
if path:
content = tk.Text(root, height=1, width=50, state='normal')
content.pack_forget()
content.delete('1.0', 'end')
save_button.config(state='disabled')
path_input.delete(0, 'end')
path_input.insert(0, 'input.txt')
# 保存文件
save_file_and_log('input.txt', content.get('1.0', 'end-1c'))
save_button.pack()
# 显示日志
log_text = tk.Text(root, height=1, width=50, state='normal')
log_text.pack_forget()
log_text.insert('1.0', 'end')
log_text.configure(state='disabled')
else:
print("文件路径为空,请输入路径!")
# 日志显示区域
log_display = tk.Text(root, height=1, width=50, state='normal')
log_display.pack_forget()
# 启动程序
root.mainloop()
if __name__ == "__main__":
main()
总结
本程序通过Tkinter实现了一个核心功能,具有以下特点:
- 文件读写操作通过
open函数实现,确保内容持久化 - 日志记录通过
filedialog实现,确保日志内容可追踪 - 文件路径输入通过对话框实现,支持用户输入
- 程序在1-3天内完成开发,支持本地运行
该程序展示了Python在GUI开发中的核心技能,包括文件读写处理、数据可视化和事件响应机制。