어떻게 읽을 선택한 파일에서 원격 Zip HTTP 를 통해 사용하는 파이썬?

StackOverflow https://stackoverflow.com/questions/94490

  •  01-07-2019
  •  | 
  •  

문제

내가 읽을 필요가 선택한 파일에서 일치하는 파일의 이름,원격지에서 zip using Python.나는 원하지 않는 저장하는 전체 지 임시 파일(그것은 크고,그래서 내가 모든 것을 처리할 수 있는 메모리에서).

이미 작성한 코드를 작동하는지,그리고 나는 대답이 나는 나 자신 그래서 나를 검색할 수 있습니다.하지만 이후 증거는 나는 하나의 멍청 참가자에서 유래를,나의하실 수 있습니다.

도움이 되었습니까?

해결책

여기에 어떻게 그것을 했(잡는 모든 끝나는 파일에서".순위"):

import urllib2, cStringIO, zipfile

try:
    remotezip = urllib2.urlopen(url)
    zipinmemory = cStringIO.StringIO(remotezip.read())
    zip = zipfile.ZipFile(zipinmemory)
    for fn in zip.namelist():
        if fn.endswith(".ranks"):
            ranks_data = zip.read(fn)
            for line in ranks_data.split("\n"):
                # do something with each line
except urllib2.HTTPError:
    # handle exception

다른 팁

감사 Marcel 에 대한 질문과 답변(나 같은 문제를 가지고 있었습니다 다른 상황에서 발생했 같은 어려움으로 파일과 같은 개체는 정말 되는 파일과 같은)!다만으로 업데이트:파이썬 3.0 코드를 수정해야 합 약간:

import urllib.request, io, zipfile

try:
    remotezip = urllib.request.urlopen(url)
    zipinmemory = io.BytesIO(remotezip.read())
    zip = zipfile.ZipFile(zipinmemory)
    for fn in zip.namelist():
        if fn.endswith(".ranks"):
            ranks_data = zip.read(fn)
            for line in ranks_data.split("\n"):
                # do something with each line
except urllib.request.HTTPError:
    # handle exception

이 일을 할 것입니다 다운로드하지 않고 전체 zip 파일!

http://pypi.python.org/pypi/pyremotezip

곰 마음에는 단순히 압축 해제 ZIP 파일이 있는 결과 보안 취약점.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top