2011-08-01 8 views
0

Tkinterを使用してファイルを選択し、そのファイル名を関数に渡す引数にインポートしようとしています。ファイルが選択されると、プログラムは単に停止します。私はパスを返すかどうかを調べるためにprintステートメントをインクルードしました。なぜなら、なぜ関数内で動作しないのかわかりません。Pythonファイルダイアログの問題

#Main 

from Tkinter import * 
import tkFileDialog 


fileOpen = Tk() 
fileOpen.withdraw() #hiding tkinter window 

file_path = tkFileDialog.askopenfilename(title="Open file", filetypes=[("txt file",".txt"),("All files",".*")]) 

if file_path != "": 
    print "you chose file with path:", file_path 

else: 
    print "you didn't open anything!" 

master.quit() 

print file_path 


spaceParser (file_path,'r','/Users/Desktop/TygerTygerParsed.txt','w') 
+0

に停止され、したがって、 'master.quit()'に到達すると、 'NameError:name 'master'が定義されていません。 – TorelTwiddler

答えて

3

この(短縮版)だけで正常に動作:

from Tkinter import * 
import tkFileDialog 

fileOpen = Tk() 
fileOpen.withdraw() #hiding tkinter window 

file_path = tkFileDialog.askopenfilename(
    title="Open file", filetypes=[("txt file",".txt"),("All files",".*")]) 

if file_path != "": 
    print "you chose file with path:", file_path 

else: 
    print "you didn't open anything!" 

print file_path 

だから私はあなたのプログラムを推測しているが、 `master`がスクリプトで定義されていません

master.quit() 
+0

正常に動作しますが、ファイル名は関数に渡されません –

+0

'spaceParser'を定義するコードを表示できますか?プログラムが 'master.quit'で停止していない場合、おそらく' spaceParser'に問題があります。あなたが私たちに示した他のすべてのコードはうまく動作するはずです。 – unutbu