tar.gz 파일에서 하나의 파일 만 읽으려고합니다. "뒤쪽으로 허용되지 않습니다 추구 tarfile.StreamError는"tar 파일 객체를 통해 모든 작업은 잘 작동하지만 구체적인 구성원에서 읽을 때, 항상 StreamError이 코드 확인, 발생)ExFileObject의 read()가 항상 StreamError 예외를 발생시킵니다.
import tarfile
fd = tarfile.open('file.tar.gz', 'r|gz')
for member in fd.getmembers():
if not member.isfile():
continue
cfile = fd.extractfile(member)
print cfile.read()
cfile.close()
fd.close()
cfile.read를 (항상 발생
나는
감사합니다 (extractall 잘 작동) 파일에 덤프되지는 mem 내용을 읽을 필요가!
파일로 투기 작동하지 않습니다 이유가 있습니까? 예를 들어'tempfile.mkdtemp'를 사용하여 디렉토리를 생성하고 거기에서 압축을 풀고 원하는 파일을 읽은 다음 디렉토리를 제거하십시오. 쓰기 가능한 파일 시스템에 액세스 할 수 없거나이 파일을 시도한 결과 성능이 용납 될 수 없다면 다른 어떤 이유도 고려하지 못할 것입니다. – abarnert
'extractall'을'tmp' 디렉토리에 저장합니다. – jmunsch