如何将制表符分隔的文本文件内容逐行导入Tkinter Treeview?
用Tkinter Treeview读取文本文件填充数据的解决方案
没问题,我给你整了一个完整的实现示例,直接就能跑起来,每一步都加了注释,你一看就懂:
首先,咱们先明确需求:文本文件每行是「文章标题\t文章编号」的格式,要把这些数据塞进只有两列的Treeview里。下面是具体代码:
import tkinter as tk from tkinter import ttk def fill_treeview(tree, file_path): # 清空Treeview里已有的数据(可选,防止重复加载) for item in tree.get_children(): tree.delete(item) # 打开文本文件逐行读取 with open(file_path, 'r', encoding='utf-8') as file: for line in file: # 去掉每行末尾的换行符,然后按制表符拆分 line = line.strip() if not line: # 跳过空行 continue # 拆分标题和编号,这里假设每行都严格是「标题\t编号」格式 title, article_id = line.split('\t', maxsplit=1) # 插入到Treeview中,第一个参数是父节点(这里用''表示根节点) tree.insert('', tk.END, values=(title, article_id)) # 创建主窗口 root = tk.Tk() root.title("文章列表") # 创建Treeview组件,设置两列,分别是标题和编号 tree = ttk.Treeview(root, columns=('标题', '编号'), show='headings') # 配置列的标题和宽度 tree.heading('标题', text='文章标题') tree.column('标题', width=300) tree.heading('编号', text='文章编号') tree.column('编号', width=100) # 把Treeview放到窗口里 tree.pack(fill=tk.BOTH, expand=True, padx=10, pady=10) # 调用填充函数,这里替换成你的文本文件路径 fill_treeview(tree, '你的文章数据.txt') # 启动主循环 root.mainloop()
几个需要注意的细节:
- 文件路径:记得把代码里的
'你的文章数据.txt'替换成你实际的文件路径,要是和脚本同目录直接写文件名就行,不同目录要写绝对路径。 - 格式兼容:用
split('\t', maxsplit=1)是为了防止标题里不小心出现制表符(虽然你说每行是标题加制表符加编号,但保险起见),这样只会拆分一次,标题里的制表符会保留。 - 空行处理:加了
if not line跳过空行,避免插入空数据。 - 编码问题:打开文件时指定了
encoding='utf-8',如果你的文本文件是其他编码(比如gbk),记得改成对应的编码,不然可能乱码。
你直接复制这段代码,改一下文件路径就能用啦!
内容的提问来源于stack exchange,提问作者Joshua Ray Workman
相关产品推荐
相关产品推荐

