2009-12-10 110 views

回答

12
file = tkFileDialog.askopenfile(parent=root,mode='rb',filetypes=[('Subrip Subtitle File','*.srt')],title='Choose a subtitle file') 
abs_path = os.path.abspath(file.name) 
+2

只要這兩行之間不存在'os.chdir()'調用,就會工作。所以在這個問題的情況下,它可能很好,但它並不完美。我想不出一種方式來做到這一點,這將永遠成爲我的頭等大事。 – 2009-12-10 14:29:07

+0

我不知道有什麼理由在GUI應用程序中使用os.chdir(),至少不是那些也使用線程的人,而這是唯一可以調用chdir()之間的方法「您控制的兩行源代碼。 – 2009-12-10 16:34:48

+0

這種方法可以信任嗎?在描述文件對象的.name屬性時,python文檔會說:「這是一個只讀屬性,可能不會出現在所有類文件對象上。」請參閱:https://docs.python.org/2/library/stdtypes.html#file.name – 2014-07-19 22:34:04

3

os.path.abspath應該做你想做的,如果我正確理解你的問題。

+0

這工作得很好,如果我傳遞一個字符串,但我不知道如何從我的文件對象:) – abcde123483 2009-12-10 14:16:50

+2

@ulvund獲取路徑字符串,試試這個:file.name適用於文件對象 – 2009-12-10 14:21:51

+0

啊感謝億萬納迪亞..這就是訣竅。 – abcde123483 2009-12-10 14:27:05

相關問題