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を使用しています。 Python 3.6
よろしくお願いします。
答え1
スクリプトの実行時に現在のディレクトリは何ですか?ここにファイルが必要です(おそらくホームディレクトリ)。コードでファイルを開くときに絶対パスを指定するか、次を使用する必要があります。Path
指示する.desktop でアプリケーションを実行するときの作業ディレクトリを設定します。