urllib2.urlopen()을 사용하여 .rar 파일을 다운로드할 때 첫 번째 줄이 누락되었습니다.

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

  •  23-08-2019
  •  | 
  •  

문제

아 정말 이상하네요.기본적으로 여러 개의 달성 파일을 다운로드하고 추출하는 스크립트가 있습니다.일반적으로 해당 파일은 .zip 파일입니다.오늘 나는 앉아서 rar 파일과 함께 작동하도록 하기로 결정했는데 막혔습니다.처음에는 문제가 내 unrar 코드에 있다고 생각했지만 거기에는 없었습니다.그래서 나는 이렇게 했습니다:

f = urllib2.urlopen(file_location)
data = StringIO(f.read())
print data.getvalue()

도대체 나도 그랬어:

f = urllib2.urlopen(file_location)
print f.read()

왜냐하면 나는 첫 번째 청크를 보고 싶었고 결과는 동일했기 때문입니다. .rar 파일의 첫 번째 줄이 누락되었습니다.

웹 브라우저를 사용하여 동일한 파일을 다운로드하면 모든 것이 정상이며 손상되지 않습니다.

도대체 여기서 무슨 일이 일어나고 있는지 설명해 줄 수 있는 사람이 있나요?그리고 파일 형식과 어떤 관련이 있습니까?

도움이 되었습니까?

해결책

데이터에 "캐리지 리턴" 문자(" ")가 포함되어 표시하려고 할 때 첫 번째 청크가 후속 데이터로 덮어쓰여질 수 있습니까?이는 출력에서 ​​첫 번째 청크가 표시되지 않는 이유를 설명하지만 나중에 이를 디코딩할 수 없는 이유는 설명하지 않습니다.

다른 팁

이진 데이터 문자열의 내용을 결정하려고 할 때 사용하십시오. repr() 또는 hex(). 예를 들어,

>>> print repr(data)
'\x00\x01\x02\x03\x04\x05\x06\x07\x08\t'
>>> print [hex(ord(c)) for c in data]
['0x0', '0x1', '0x2', '0x3', '0x4', '0x5', '0x6', '0x7', '0x8', '0x9']
>>>
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top