2017-11-29 22 views
-1

tkfiledialog를 사용하여 파일을 선택한 다음 Zipfile을 사용하여 내용을 추출하려고합니다. 그것은 나에게 명확한 대답을하지 않았다 인터넷 검색tkFileDialog 및 Zipfile 오류 : "AttributeError : '_io.TextIOWrapper'객체에 'namelist'속성이 없습니다.

AttributeError: '_io.TextIOWrapper' object has no attribute 'namelist' 

,하지만 몇 가지의 .zip 파일을 시도하고 메시지를 가지고이 오류를 반환

from zipfile import ZipFile 
from tkinter import filedialog 


ZipFile.extractall(filedialog.askopenfile()) 

. 어떤 아이디어?

+0

'extractall'에 대한 설명서는 첫 번째 매개 변수가 파일 경로라고 말합니다. 'askopenfile()'은 파일 경로를 반환하지 않습니다. –

답변

0

filedialog.askopenfile()은 파일 개체를 반환하지만 ZipFile.extractall은 (경로의) 문자열을 사용합니다. 원하는 파일은 filedialog.askopenfilename()이며, 선택한 파일의 절대 파일 경로를 반환합니다 (즉, ZipFile에서 사용할 수 있음을 의미합니다).

희망이 있습니다.

+0

그랬어! 아마 바보 같은 질문에 답 해줘서 고마워. 당신은 막대한 악화를 막 끝냅니다. – clarktwain

+0

@clarktwain 정답이 맞으면 올바른 것으로 표시하여 같은 문제가있는 다른 사람들이 신속하게 답변을 찾을 수 있도록하십시오. –

0

zipfile 라이브러리를 잘못 사용하고 있습니다. 이것을 시도하십시오 :

from zipfile import ZipFile 
from tkinter import filedialog 


zip_file = ZipFile(filedialog.askopenfilename()) 
zip_file.extractall()