2012-11-16 2 views
3

현재 3 년째 트위터의 데이터와 관련된 프로젝트를 진행 중입니다. 부서에서 .lzo의 월간 트위터를 제공했습니다. 가장 작은 크기는 4.9GB이고 압축 해제시 29GB이므로 파일을 열고 읽으려고합니다. 이것이 가능합니까? 아니면 데이터를 압축 해제하고 그런 식으로 작업해야합니까?파일의 압축을 풀지 않고 파이썬에서 lzo 파일 열기

편집 : 읽기 라인을

UPDATE를 라인으로 라인을 읽고 압축을 시도한 적이 : 해결책을 찾을 수 - lzop의 STDOUT를 읽고 난 단 하나의 라이브러리를 알고

+0

시도해 보셨습니까? –

+0

한 줄씩 읽으려고 시도하고 문자열을 압축 해제합니다. – DrugCrazed

답변

6

그렇다면 -c 스위치와 하위 프로세스에 lzop binary를 시작하고 라인에 의해 그 STDOUT 라인을 읽기에 대해?

+0

파이썬에 대한 지식 부족이 여기에 약간의 방해가 될 것이라는 느낌이 들었습니다 ... – DrugCrazed

+2

오늘, 저는 제 노트북에 29GB 메모리가 없다는 것을 알았습니다. – DrugCrazed

4

매력처럼 작동 -dc을 LZO with Python - https://github.com/jd-boyd/python-lzo 그리고 전체 압축 풀기가 필요합니다 (또한 메모리의 내용을 압축 해제합니다).

그래서 작업하기 전에 파일의 압축을 풀어야한다고 생각합니다.

1

나는이 질문이 아주 오래된 것으로 알고 있으며 그 대답은 정말 좋습니다. 나는 samilar 문제를 enchountered, 구글은 나를 데려왔다.

나는 lzo 압축과 lzop 프로그램에 대한 경험을 적어 둔다. 희망은 나 같은 사람이 같은 quesion 발생할 수 있습니다. 그리고 lzo 파일을 다루는 간단한 파이썬 모듈을 작성하면 찾을 수 있습니다 https://github.com/ir193/python-lzo/

quesion과 관련하여 한 번에 하나의 블록을 읽으면 lzo 압축 파일을 제자리에서 읽습니다 (전체 파일의 압축을 풀지 않음). . lzo 파일은 serveral 블록으로 분할되며 serveral MB에 대한 블록의 최대 크기가 있습니다. 내 모듈에서는 read (4096) 정도만 사용할 수 있습니다.

사실 * .lzo는 lzop에 의해 만들어졌으며 다른 대답 (https://github.com/jd-boyd/python-lzo)에서 제공되는 python-lzo와 관련이 거의 없습니다. 이 모듈은 압축/압축 해제 문자열에 사용되며 lzop 파일 헤더와 체크섬을 처리하지 않습니다. 존재하는 lzo 파일을 열려면이 파일을 사용하지 마십시오.

관련 문제