Python 按制表符分隔的行读取文件,然后插入到 tkinter 树视图中
Python read file by line separate by tab then insert into tkinter treeview
我正在尝试在 tkinter 中创建一个树视图,其中填充了来自 txt 文件的数据。这个文件有几行,每行都有一个文章标题,一个选项卡,然后是一个与标题匹配的文章编号。我正在尝试读取文件中的所有行并按制表符拆分,以便我可以将标题和文章编号插入到使用 Tkinter 制作的树视图中它们各自的列中。树视图只有标题和文章编号两列。显然,即使树视图被过滤或重新排列,我也需要标题和编号在树视图中匹配。我该怎么做?
我认为这样的事情至少会给我两个具有正确值的列表:
filename = "ArtIDs.txt"
with open(filename, "r") as readfile:
types = (line.split("\t") for line in readfile)
xys = ((type[1], type[2]) for type in types)
for x, y in xys:
print(x,y)
但我一直收到 "list index out of range" 错误。
应该从0开始
尝试:
filename = "ArtIDs.txt"
with open(filename, "r") as readfile:
types = (line.split("\t") for line in readfile)
xys = ((type[0], type[1]) for type in types)
for x, y in xys:
print(x,y)
请试试这个,可能会有帮助:
main = tk.Tk()
frame = tk.Frame(main)
frame.grid()
tree = ttk.Treeview(main, columns=('1', '2'))
tree.grid(column=0, sticky='N' + 'S' + 'E' + 'W')
n = 1
with open(filename, "r") as readfile:
types = (line.split("\t") for line in readfile)
xys = ((type[0], type[1]) for type in types)
for x, y in xys:
tree.insert("", n, values=(x, y))
n+=1
main.mainloop()
我正在尝试在 tkinter 中创建一个树视图,其中填充了来自 txt 文件的数据。这个文件有几行,每行都有一个文章标题,一个选项卡,然后是一个与标题匹配的文章编号。我正在尝试读取文件中的所有行并按制表符拆分,以便我可以将标题和文章编号插入到使用 Tkinter 制作的树视图中它们各自的列中。树视图只有标题和文章编号两列。显然,即使树视图被过滤或重新排列,我也需要标题和编号在树视图中匹配。我该怎么做?
我认为这样的事情至少会给我两个具有正确值的列表:
filename = "ArtIDs.txt"
with open(filename, "r") as readfile:
types = (line.split("\t") for line in readfile)
xys = ((type[1], type[2]) for type in types)
for x, y in xys:
print(x,y)
但我一直收到 "list index out of range" 错误。
应该从0开始
尝试:
filename = "ArtIDs.txt"
with open(filename, "r") as readfile:
types = (line.split("\t") for line in readfile)
xys = ((type[0], type[1]) for type in types)
for x, y in xys:
print(x,y)
请试试这个,可能会有帮助:
main = tk.Tk()
frame = tk.Frame(main)
frame.grid()
tree = ttk.Treeview(main, columns=('1', '2'))
tree.grid(column=0, sticky='N' + 'S' + 'E' + 'W')
n = 1
with open(filename, "r") as readfile:
types = (line.split("\t") for line in readfile)
xys = ((type[0], type[1]) for type in types)
for x, y in xys:
tree.insert("", n, values=(x, y))
n+=1
main.mainloop()