tkinter를 사용하여 간단한 프로그램을 만들었습니다. piriquita.py를 클릭하여 실행하든, 터미널을 통해 실행하든, log_piriquita.tx 데이터가 없으면 생성되고, 이미 있으면 추가됩니다. 사실은 .txt 파일이 생성되고 데이터가 저장된다는 것입니다.
코드는 다음과 같습니다.
#!/usr/bin/python3
#17.10.2019 terminado 18.10.2019
#programa para cálculos da Piriquita
from tkinter import*
from datetime import date
janela = Tk(className='piriquita')
def calcular():
print("calcular")
d = float(dose.get())
p = float(peso.get())
c = float(conc.get())
v = d*p/c
lbl_resultado['text'] = round(v, 1)
data_atual = date.today()
data_normal = data_atual.strftime('%d/%m/%Y')
f = open('log_piriquita.txt', 'a+')
f.write(f'{data_normal}: Dose {d}, peso {p}, conc {c} = {v:.1f}\n')
f.close()
lbl_dose = Label(janela, text='Dose (mg)', font=(None, 15))
lbl_dose.place(x=10, y= 20)
dose = Entry(janela, width="6", font=(None, 15))
dose.place(x=130, y=20)
lbl_peso = Label(janela, text='Peso (kg)', font=(None, 15))
lbl_peso.place(x=10, y= 60)
peso = Entry(janela, width="6", font=(None, 15))
peso.place(x=130, y=60)
lbl_conc = Label(janela, text='Conc.(mg)', font=(None, 15))
lbl_conc.place(x=10, y= 100)
conc = Entry(janela, width="6", font=(None, 15))
conc.place(x=130, y=100)
bt = Button(janela, text="Calcular", width=5, command = calcular,
font=(None, 15), fg='purple')
bt.place(x=80, y=140)
lbl_resul = Label(janela, text="Resultado", fg="red", font=(None, 22))
lbl_resul.place(x=10, y=200)
lbl_resultado = Label(janela, text="0", fg="red", font=(None, 22,
'bold'))
lbl_resultado.place(x=190, y=200)
janela.geometry("300x250+300+300")
janela.title("Piriquita")
janela.mainloop()
그런 다음 실행 가능한 아이콘을 만들었습니다.
[Desktop Entry]
Type=Application
Terminal=false
Name=Piriquita
Exec=/home/js/Coding/Atom/Piriquita/piriquita.py
Icon=/home/js/Coding/Atom/Piriquita/piriquita1.png
StartupWMClass=piriquita
모두 괜찮습니다. 잘 작동하지만 piriquita.py 스크립트처럼 log_piriquita.txt를 생성하지 않습니다. 제가 무엇을 놓치고 있나요?
저는 민트 19를 사용합니다. 파이썬 3.6
미리 감사드립니다.
답변1
스크립트가 실행될 때 현재 디렉터리는 무엇입니까? 여기에 파일이 있어야 합니다(아마도 홈 디렉터리). 코드에서 파일을 열 때 절대 경로를 제공하거나 다음을 사용해야 합니다.Path
지시하다.desktop에서 애플리케이션이 실행될 때 작업 디렉터리를 설정합니다.