요청 모듈을 사용한 이미지 다운로드 문제 해결
질문:
이미지를 다운로드하는 동안 Python의 요청 모듈을 사용하여 아래 코드 실패:
r = requests.get(settings.STATICMAP_URL.format(**data)) if r.status_code == 200: img = r.raw.read() with open(path, 'w') as f: f.write(img)
문제를 식별하고 해결 방법을 제안할 수 있습니까?
답변:
요청 모듈을 사용하여 이미지를 다운로드하려면 , response.raw 파일 객체를 활용하거나 응답을 반복할 수 있습니다. 접근 방식은 다음과 같습니다.
response.raw 사용:
import requests import shutil r = requests.get(settings.STATICMAP_URL.format(**data), stream=True) if r.status_code == 200: with open(path, 'wb') as f: r.raw.decode_content = True shutil.copyfileobj(r.raw, f)
이 접근 방식은 압축된 응답의 압축을 강제로 풀고 quitil.copyfileobj()를 사용하여 데이터를 스트리밍합니다. 파일 객체.
반복 응답:
r = requests.get(settings.STATICMAP_URL.format(**data), stream=True) if r.status_code == 200: with open(path, 'wb') as f: for chunk in r: f.write(chunk)
이 접근 방식을 사용하면 데이터가 압축 해제되고 128바이트 청크로 데이터를 읽습니다. Response.iter_content() 메소드를 사용하여 청크 크기를 사용자 정의할 수 있습니다.
추가 참고 사항:
위 내용은 Python의 요청 모듈을 사용하여 이미지 다운로드 문제를 해결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!