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!
