Jan-26-2022, 08:29 AM
Hello, I am trying to insert a file path in an entry in my GUI. I then want to save this entry, as I need the path in another script that I have made. I am however unsure how to do this. I have tried a couple of things but get errors like that the entry is unhashable type, and I am not sure how to fix this. I have read that I should make it to a tuple, but could not make this work either. The part which involves the entry and where I should get the other script to run looks like this :)
And the script I am trying to run, when I obtain a file path looks like this
The purpose of this is that i want to make my GUI file structured and call script instead of having it all in one fill. This particular example should obtain the path to a txt.file which contains some data, that i want to convert and use later in the GUI
Hope my question makes sense :)
Looking forward to hearing from you!
#insert filname in entry fil_udfald_regn = StringVar() fil_udfald = ttk.Entry(tab1, textvariable=fil_udfald_regn).place(x=145, y=81) # Definition for udfaldknap def files_udfald(): window.filename = filedialog.askopenfilename(initialdir='\\:C', title="Vælg fil", filetypes=[("Text files", "*.txt"), ("All files", "*.*")]) fil_udfald_regn.set(window.filename) print(fil_udfald_regn) print(fil_udfald) # Trying to save the entry and then set the script to be equal to entry def entry_sti(): #todo test = gg(fil_udfald_regn.get()) return fil_udfald_regn.get() # Button that runs the two definitions vlg_udfald = ttk.Button(tab1, text="Vælg udfaldsfil", padding=(2, 2, 2, 2), command=lambda :[files_udfald(),entry_sti()]).place(x=25, y=78)
And the script I am trying to run, when I obtain a file path looks like this
import os from pathlib import Path from datetime import datetime import pandas as pd from io import StringIO def gg(name): d = pd.read_csv({name}, encoding='ISO-8859-1') d.to_csv('Udfald.csv', index=False) file1 = open('Udfald.csv', 'r') Lines = file1.readlines() def convert_udfald(): # Set start directory same as script os.chdir(os.path.abspath(os.path.dirname(__file__))) infile = Path('.') / 'Udfald.csv' outfile = Path('.') / 'Udfald1.csv' with infile.open() as fp, outfile.open('w') as fout: for line in fp: line = line.strip().split() header = 'd' # extract header if line[0] == 'ååååmmdd': data = f"{header}\n" fout.write(data) Day=int(line[8]) #minute= int(line[9]) dage = Day Timer= line[9] data = f"{dage}:{Timer}\n" fout.write(data) # else: # print('false') if __name__ == '__main__': convert_udfald() d = pd.read_csv("Udfald1.csv") #print(d) t=d.iloc[0,0] d=t.strip().split(':') dage=float(int(d[0])) timer=float(int(d[1])) minutter=float(int(d[2])) year=(dage+(timer/24)+(minutter/24/60))/365 year=round(year,ndigits=2) print(year) df=str(year) print(year) df=StringIO(df) df=pd.read_csv(df) df.to_csv('udfald1.csv', index=False) df=pd.read_csv('udfald1.csv', header=None) print(df.iloc[:1])The error message i get right now is "ValueError: Invalid file path or buffer object type: <class 'set'>"
The purpose of this is that i want to make my GUI file structured and call script instead of having it all in one fill. This particular example should obtain the path to a txt.file which contains some data, that i want to convert and use later in the GUI
Hope my question makes sense :)
Looking forward to hearing from you!