2009-12-10 4 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()'호출이 없으면 작동합니다. 따라서이 질문의 경우에는 괜찮을 지 모르지만 완벽하지는 않습니다. 나는 항상 내 머리 꼭대기에서 일할 수있는 방법을 생각할 수 없다. –

+0

GUI 응용 프로그램에서 os.chdir()을 사용하는 데는 이유가 전혀 없습니다. 적어도 스레드를 사용하는 것은 아니며 chdir()을 호출 할 수있는 유일한 방법입니다. 당신이 통제하는 두 줄의 근원. –

+0

이 방법을 신뢰할 수 있습니까? 파일 객체의 .name 속성을 설명 할 때 파이썬 docs는 "이것은 읽기 전용 속성이며 모든 파일과 유사한 객체에 존재하지 않을 수도 있습니다."라고 말합니다. 참조 : https://docs.python.org/2/library/stdtypes.html#file.name –

3

os.path.abspath 귀하의 질문을 올바르게 이해하면 원하는대로해야합니다.

+0

내가 문자열을 전달하면이 잘 작동하지만 내 파일 객체 : – abcde123483

+2

@ulvund에서 문자열로 경로를 얻는 방법을 모르는,이 시도 : file.name 파일 작동 –

+0

아 개체 10 억 명의 나디아에게 감사드립니다. 트릭을했습니다. – abcde123483

관련 문제