![]() |
[Tkinter] Two text files in Text widget (python 3) - Printable Version +- Python Forum (https://python-forum.io) +-- Forum: Python Coding (https://python-forum.io/forum-7.html) +--- Forum: GUI (https://python-forum.io/forum-10.html) +--- Thread: [Tkinter] Two text files in Text widget (python 3) (/thread-13860.html) |
Two text files in Text widget (python 3) - atlass218 - Nov-04-2018 Hi; I'm trying to display the contents of 02 text files in a Tkinter (Text) widget, but I didn'tt arrived. File contents (loc1.txt): Quote:21/06/18 -0.7 Content of the second text file (loc2.txt): Quote:21/06/18 -0.7 Here is the code I made to display the contents of a text file: sous_generalites=Frame(generalites,bg='powder blue') sous_generalites.pack(side=BOTTOM) s_generalites= Scrollbar(sous_generalites) T_generalites= Text(sous_generalites,bg='powder blue',width=750,height=550,font=('arial',14,'bold'),padx=20) s_generalites.pack(side=RIGHT, fill=Y) T_generalites.pack(side=LEFT, fill=Y) s_generalites.config(command=T_generalites.yview) T_generalites.config(yscrollcommand=s_generalites.set) filename =('archives/loc1.txt') fichier = open(filename, "r") content_generalites= fichier.read() fichier.close() T_generalites.insert(END, content_generalites)Each of the two files has two columns (the first column is the same for both files, it represents the date) here is the image of the desired concept: ![]() thanks or help RE: Two text files in Text widget (python 3) - Larz60+ - Nov-04-2018 this code: filename =('archives/loc1.txt') fichier = open(filename, "r") content_generalites= fichier.read() fichier.close() T_generalites.insert(END, content_generalites)can be simplified to: with open(filename, "r") as fichier: for line in fichire: T_generalites.insert(END, line.strip())I don't see a second file, but just add a similar phrase for the second file also, if you wish to intermingle data from both files, you can use: with open(file1, 'r') as f1, open(file2, 'r') as f2: ... RE: Two text files in Text widget (python 3) - atlass218 - Nov-05-2018 hi; you don't see the second files because i don't knew how to do for adding tne content of two files in the same widget 'TEXT' I try this code but it doesn't work like I want with open('data_monitor1_axe_loc35L.txt', "r") as fichier1,open('data_monitor2_axe_loc35L.txt', "r") as fichier2: for line in fichier1: T1_paned_f7_bottom_35L_left.insert(END, line.strip()) for line in fichier2: T1_paned_f7_bottom_35L_left.insert(END, line.strip()) RE: Two text files in Text widget (python 3) - Larz60+ - Nov-05-2018 Quote:but it doesn't work like I wantand that is? RE: Two text files in Text widget (python 3) - atlass218 - Nov-06-2018 I think that the problem I encountered was not well understood. for that I explain again to have a good idea about the problem : there are two text files that I want to integrate into a widgte (TEXT) the content of two files (loc2.txt,loc2.txt) loc1.txt: Quote:21/06/18 -0.7 loc2.txt: Quote:21/06/18 -0.7 the first column of two txt files(loc1.txt and loc2.txt)is the same (It describes date) I want to display the contents of these two files in a widget (TEXT) in this way: * the first column displayed in the widget (TEXT) would be the column of the date (which is already the first common column for the two text files loc1.txt, and loc2.txt) * the second column displayed in the widget TEXT would be the second column of the text file (loc1.txt) * the third column displayed in the widget TEXT would be the second column of the text file (loc2.txt) here is the image of the desired concept: ![]() currently, I can only display the contents of a single text file in the widget by this code : from tkinter import * import tkinter.ttk as ttk from tkinter.ttk import Notebook container=Tk() container.geometry('450x350') generalites=Frame(container,bg='powder blue') generalites.pack(side=BOTTOM) s_generalites= Scrollbar(generalites) T_generalites= Text(generalites,bg='powder blue',width=350,height=350) s_generalites.pack(side=RIGHT, fill=Y) T_generalites.pack(side=LEFT, fill=Y) s_generalites.config(command=T_generalites.yview) T_generalites.config(yscrollcommand=s_generalites.set) filename =('loc1.txt') fichier = open(filename, "r") content_generalites= fichier.read() fichier.close() T_generalites.insert(END, content_generalites) container.mainloop()I hope that I have successfully explained the problem RE: Two text files in Text widget (python 3) - Larz60+ - Nov-06-2018 import os # make sure in code directory os.chdir(os.path.dirname(__file__)) with open('loc1.txt') as loc1, open('loc2.txt') as loc2: head = ['Date', 'Value 1', 'Value2'] print(f'{head[0]:15} {head[1]:10} {head[2]:10}') while True: line1 = loc1.readline() if len(line1) == 0: break line1 = line1.strip().split() line2 = loc2.readline() line2 = line2.strip().split() print(f'{line1[0]:15} {line1[1]:10} {line2[1]:10}')results: you can add the gui code to insert into your widgetThis code uses f-string (python 3.6 and newer) RE: Two text files in Text widget (python 3) - atlass218 - Nov-06-2018 I try to put this code in widget tkinter but i have problem there is my code : import os from tkinter import * root=Tk() root.geometry('450x350') # make sure in code directory os.chdir(os.path.dirname(__file__)) with open('archives/ILS_35L/loc35L/loc1.txt') as loc1, open('archives/ILS_35L/loc35L/loc2.txt') as loc2: head = ['Date', 'Monitor 1', 'Monitor 2'] lb_date=Label(root,text=f'{head[0]:15}',bg='powder blue') lb_date.place(x=10,y=30) lb_monitor1=Label(root,text=f'{head[1]:10}',bg='powder blue') lb_monitor1.place(x=60,y=30) lb_monitor2=Label(root,text=f'{head[2]:10}',bg='powder blue') lb_monitor1.place(x=120,y=30) # lb=Label(root, text=f'{head[0]:15}{head[1]:10}{head[2]:10}') # lb.pack() generalites=Frame(root,bg='powder blue') generalites.pack(side=BOTTOM) s_generalites= Scrollbar(generalites) T_generalites= Text(generalites,bg='powder blue',width=350,height=350) s_generalites.pack(side=RIGHT, fill=Y) T_generalites.pack(side=LEFT, fill=Y) s_generalites.config(command=T_generalites.yview) T_generalites.config(yscrollcommand=s_generalites.set) while True: line1 = loc1.readline() if len(line1) == 0: break line1 = line1.strip().split() line2 = loc2.readline() line2 = line2.strip().split() content_generalites=f'{line1[0]:15}{line1[1]:10}{line2[1]:10}' T_generalites.insert(END, content_generalites) root.mainloop() RE: Two text files in Text widget (python 3) - nilamo - Nov-06-2018 (Nov-06-2018, 08:55 PM)atlass218 Wrote: but i have problemIs there an error? What problem are you having, and why do you want us to guess what that problem is? RE: Two text files in Text widget (python 3) - atlass218 - Nov-07-2018 The code indicates by Larz60 + works perfectly in console, so I tried to modify it so that it gives me the same result with widget tkinter (TEXT with scrolling) with my last code I have this picture : ![]() I wish to correct my code to have in TEXT widget of tkinter (python 3) as this result : ![]() thanks for help RE: Two text files in Text widget (python 3) - Larz60+ - Nov-07-2018 Try: content_generalites = f'{line1[0]:15} {line1[1]:10} {line2[1]:10}'.strip()or better, remove that line altogether and replace next with: T_generalites.insert(END, f'{line1[0]:15} {line1[1]:10} {line2[1]:10}'.strip()) |