2016-03-19 2 views
1

私はtkinter.filedialog.askdirectoryで選択されたディレクトリの完全なパスを取得しようとしていますが、ルートフォルダのパスのみを返します。例えば、/ rootが '/'のみを返します。奇妙な、それを得る方法python3.5で完全なパスを返しますか? TkinterのインポートのFileDialogtkinter.filedialog.askdirectoryが(選択されたdirnameで)完全パスを戻していないのはなぜですか?

root = tk.Tk() 
root.withdraw() 
dirname = filedialog.askdirectory(parent=root,initialdir="/",title='Please select a directory') 
if len(dirname) > 0: 
    print("You chose %s" % dirname) 
+0

私のMacで期待通りに動作しますが、使用しているOSは何ですか? –

+0

Linux gnu 4.2.0-27-ジェネリック#32-Ubuntu SMP Fri Jan 22 04:49:08 UTC 2016 x86_64 x86_64 x86_64 – ubugnu

+1

したがって、選択したフォルダの代わりにフォルダを開いていますか? '/ root'をダブルクリックしてナビゲートすると正しいパスが得られますか?私は友人がpython以外のプログラムでlinuxと同じ問題を抱えていることを覚えています。 –

答えて

2

からTK filedialog.askdirectory()方法として

インポートのTkinterはPyObjectコマンドを必要filedialog.Directoryクラスのインスタンスを返す:

enter image description here

フォルダの単なる選択をコマンドを表していないので、あなたが望むフォルダは印刷されません。フォルダをダブルクリックすることで、満足のいく一貫したPyObjectコマンドが得られます。簡単な言葉で

あなたが開きたいフォルダををダブルクリックする必要があり、[OK]をクリックして、単にそれを選択し、ファイルを開くダイアログウィンドウでOkをクリックしません。それ以外の場合は、現在のディレクトリのパスを表示します(initialdir = '/'

関連する問題