2017-11-17 1 views
0

tar 파일의 텍스트 파일을 Python 3.4 이상의 텍스트 I/O 파일 객체로 추출하는 간단한 방법이 있습니까?python3의 tarfile 모듈로 tar에서 텍스트 파일을 추출

파이썬 3에 파이썬 2 코드를 개정하고 있으며, 텍스트 I/O가있는 파일 객체를 반환하는 데 사용 된 TarFile.extractfile을 찾았습니다. 바이너리 I/O가있는 것 같습니다 io.BufferedReader 개체를 반환합니다. 내 코드의 다른 부분은 텍스트 I/O를 예상하므로이 변경 사항을 어떤 식 으로든 흡수해야합니다.

내가 생각할 수있는 한 가지 방법은 TarFile.extract을 사용하여 파일을 디렉토리에 씁니다.이 파일을 open 함수로 엽니 다. 텍스트 I/O 스트림을 직접 가져 오는 방법이 있는지 궁금합니다.

답변

1

io.BufferedReader을 포장 io.TextIOWrapper을보십시오.

0

당신은() 그 후

import tarfile 
tar = tarfile.open("test.tar") 
tar.getmembers() 

을 getmembers을 사용할 수 있습니다, 당신은 파일 객체로 회원을 추출 extractfile()를 사용할 수 있습니다. 그냥 예

import tarfile,os 
import sys 
os.chdir("/tmp/foo") 
tar = tarfile.open("test.tar") 
for member in tar.getmembers(): 
    f=tar.extractfile(member) 
    content=f.read() 
    // do operations with your content 
    sys.exit() 
tar.close() 
+0

감사합니다. 'content'는 바이너리입니다. 내 질문은 텍스트 I/O를 얻는 방법입니다. – norio