2017-05-08 1 views
1
import json 
import gzip 
import linecache 

cnt = 0 
jsonfile = 'refsnp_blobs.json.gz' 

........ 
.... 

fin = gzip.open(jsonfile,'r') 
fin.seek(100, 0)     #go to random position 
print(fin.readline()) 
exit() 

refsnp_blobs.json.gz 외부 FTP 서버로 볼 수 있습니다 파이썬에서 외부 FTP 서버에 .gz 파일 avaiblable의 내용에 액세스하는 방법, 나는 그것의 더 50기가바이트 이후 다운로드하고 싶지 않아요. 이렇게 할 방법이 있다면?

+0

** 시도 **가있을 경우에만 제안합니다. 첫째, [ftplib] (https://docs.python.org/3/library/ftplib.html?highlight=ftplib#module-ftplib)을 사용하고'ftplib.FTP.storlines'을 덮어 쓰면 원하는 데이터를 얻을 수 있습니다. 그럼'gzip.GzipFile (data)'시도해보십시오. – Cheney

+0

@Cheney 아마도 "retrlines"또는 더 나은'retrbinary'를 의미 할 것입니다. –

답변

0

실제로 파일을 다운로드하지 않고 원격 FTP 서버에 저장된 아카이브 파일의 내용에는 액세스 할 수 없습니다.

물론 아카이브 파일을 로컬에 저장하지 않고도 (즉, 주석에 @Cheney가 제안한대로) 내용을 추출 할 수 있습니다. 이렇게하면 로컬 스토리지를 절약 할 수 있지만 여전히 대역폭을 낭비합니다.


서버에 대한 셸 액세스 권한이있는 경우 파일을 원격으로 추출하고 사용자가 추출한 내용의 일부만 액세스 할 수 있습니다.


비슷한 질문에 대해 Download zip file via FTP and extract files in memory in Python를 참조하십시오.

+0

쉘 액세스가 가능하지만 읽기 전용인지 여부에 관계없이 작동합니다. – dkmaven

+0

쉘 명령을 실행할 수 있지만 파일을 만들 수 없다는 것을 의미합니까? '/ tmp'에서도 그렇지 않습니까? –

+0

-r - r - r-- 1 ftp anonymous 55355278803 Mar 28 16:46 refsnp.json.gz, r (읽기 전용) – dkmaven