質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Tkinter

Tkinterは、GUIツールキットである“Tk”をPythonから利用できるようにした標準ライブラリである。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

509閲覧

Tkinterで参照フォルダがプログラムに反映されない

退会済みユーザー

退会済みユーザー

総合スコア0

Tkinter

Tkinterは、GUIツールキットである“Tk”をPythonから利用できるようにした標準ライブラリである。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

1クリップ

投稿2019/02/25 08:14

編集2019/02/25 08:16

前提・実現したいこと

tkinterを用いて、座標データから角度の時間変化についてのグラフを作成したいです。

発生している問題・エラーメッセージ

GUI上で参照先のフォルダを指定したあと、ボタンを押して角度計算のプログラムを実行したいのです。
設定した参照ファイルが角度計算のプログラムの参照先(ディレクトリ移動先)として反映されません。
手動でファイル参照先を設定する角度計算プログラム単体では正常な動作を確認しています。

Exception in Tkinter callback Traceback (most recent call last): File "/usr/lib/python3.4/tkinter/__init__.py", line 1536, in __call__ return self.func(*args) File "/home/deepstation/PycharmProjects/tkinter/app.py", line 66, in button2_clicked os.chdir('dir) FileNotFoundError: [Errno 2] No such file or directory: 'dir'

該当のソースコード

python

1import 省略 2 3#rootウィンドウを作成 4root = tk.Tk() 5 6# 参照ボタンのイベント 7# button1クリック時の処理 8def button1_clicked(): 9 fTyp = [("","*")] 10 iDir = os.path.abspath(os.path.dirname(__file__)) 11 dir = tk.filedialog.askdirectory(initialdir=iDir) 12 file1.set(dir) 13 14#参照ボタンの作成 15button1 = ttk.Button(root, text=u'参照', command=button1_clicked) 16button1.grid() 17 18# Frame1の作成 19frame1 = ttk.Frame(root, padding=10) 20frame1.grid() 21 22# 「ファイル」ラベルの作成 23s = StringVar() 24s.set('ファイル>>') 25label1 = ttk.Label(frame1, textvariable=s) 26label1.grid() 27 28# 参照ファイルパス表示ラベルの作成 29file1 = StringVar() 30file1_entry = ttk.Entry(frame1, textvariable=file1, width=50) 31file1_entry.grid() 32 33# button2クリック時の処理 34def button2_clicked(): 35 print("1" + os.getcwd()) 36 37#関節角度計算 38 os.chdir('dir') 39 print("2" + os.getcwd()) 40 41 f = open(PROJECTNAME + '.csv', 'w') 42 writer = csv.writer(f, lineterminator='\n') 43 44 # データをリストに保持 45 csvlist = [] 46 47 # データの読み込み 48 data1 = pd.read_csv('3.csv', engine='python', names=('X', 'Y', 'accurancy', 'NaN')) 49 data2 = pd.read_csv('2.csv', engine='python', names=('X', 'Y', 'accurancy', 'NaN')) 50 data3 = pd.read_csv('4.csv', engine='python', names=('X', 'Y', 'accurancy', 'NaN')) 51 data_r = data1.reset_index() 52 53〜〜関節角度計算略〜〜 54 55# Frame2の作成 56frame2 = ttk.Frame(root, padding=(0, 5)) 57frame2.grid(row=1) 58 59# 関節角度計算ボタン 60button2 = ttk.Button(frame2, text='右肘', command=button2_clicked) 61button2.grid() 62 63root.mainloop()

試したこと

ファイル参照先を'file1'に変更してみましたが、同様のエラーが発生しました。

補足情報(FW/ツールのバージョンなど)

Python3

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hayataka2049

2019/02/25 14:03

print("1" + os.getcwd())の部分で表示されるディレクトリ配下にdirがありますか?
退会済みユーザー

退会済みユーザー

2019/02/26 06:04

その時点では、tkinterプログラムの存在するディレクトリが表示されました。 参照先に設定したディレクトリは反映されておりませんでした。
hayataka2049

2019/02/26 07:42

"dir"が文字通り"dir"と書いてあるなら、相対パスなのでprint("1" + os.getcwd())の時点で「dirの親ディレクトリ」が表示されるようにしないと移動できません。絶対パスで書けばその限りではありません
guest

回答1

0

ベストアンサー

os.chdir(file2)の前に
file2 = file1.get()を挿入することで解決しました。

投稿2019/02/28 02:54

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問