フォルダを作成すると同時に、そのフォルダの中にファイルを作成するアプリを、
Tkinterで作成したいと思っておりますがうまくいきません。
下記のようなコード(test.py)を作成しました。
python
1import pandas as pd 2import os 3import tkinter 4 5tki = tkinter.Tk() 6tki.geometry('360x200') 7 8dir_name = "作成フォルダ" 9 10def make_file(): 11 print("test") 12 13 os.mkdir(dir_name) 14 15 # 今いるディレクトリ 16 path = os.path.dirname(os.path.abspath(__file__)) 17 18 # 作成するファイル名 19 filename = "sample.xlsx" 20 21 # 保存先パスとファイル名の連結 22 filename_path = os.path.join(path, dir_name, filename) 23 24 print(filename_path) 25 26 df = pd.DataFrame([[11, 21, 31], [12, 22, 32], [31, 32, 33]], 27 index=['one', 'two', 'three'], columns=['a', 'b', 'c']) 28 29 df.to_excel(filename_path) 30 31make_file_btn = tkinter.Button(tki, text='作成', command=make_file) 32make_file_btn.place(x=150, y=80) 33 34tki.mainloop()
上記コードを下記のコマンド、
python test.py
で実行するとTkinterが起動します。
この場合、作成ボタンをクリックすると問題なく
このtest.pyと同ディレクトリに「作成フォルダ」が作成され、
そのフォルダの中にもsample.xlsxファイルが作成されているのが確認できます。
ただしこれを下記のコマンドでTkinterのexeアプリを作成し、
pyinstaller test.py --onefile
生成されたtest.exeアプリを起動して試してみるとsample.xlsxファイルがうまく作成できないのです。
「作成フォルダ」は問題なく作成できるのですが、
その中にsample.xlsxファイルが作成されません。
print(filename_path) を見ればわかるのですが、
コマンドの場合とexeアプリを起動させた場合のTkinterの今いるディレクトリであるpathの内容の表記が、
少し違うのです。
どのようにしたらexeファイルでも実行可能になるのでしょうか?
少しでもヒント頂けたら幸いです。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。