문자열에 저장된 URL을 사용하여 Python 3에서 웹에서 파일을 다운로드하는 방법
Python 3의 웹 서버에서 문자열을 URL로 전달하면 바이트 입력을 요구하는 오류가 발생할 수 있습니다. 이 기사에서는 이 문제를 우회하고 파일을 성공적으로 검색할 수 있는 여러 가지 방법을 제시합니다.
urllib.request.urlopen 사용
웹페이지의 콘텐츠를 얻으려면 urllib를 활용하세요. .request.urlopen(). 이 함수는 응답 개체를 반환한 다음 변수로 읽을 수 있습니다.
<code class="python">import urllib.request url = 'http://example.com/' response = urllib.request.urlopen(url) data = response.read() # a `bytes` object</code>
urlib.request.urlretrieve 사용
가장 간단한 방법으로 다운로드하고 파일을 저장하는 것은 urllib.request.urlretrieve를 활용하는 것입니다. 함수:
<code class="python">import urllib.request url = 'http://example.com/file.txt' urllib.request.urlretrieve(url, 'file.txt')</code>
이 방법은 지정된 URL에서 파일을 다운로드하여 로컬에 'file.txt'로 저장합니다.
shutil.copyfileobj와 함께 urlib.request.urlopen 사용
다운로드 프로세스를 더 효과적으로 제어하려면 urllib.request.urlopen()을 사용하세요. 파일류 객체를 반환합니다. 그런 다음 이 객체는 quitil.copyfileobj()를 사용하여 실제 파일에 복사할 수 있습니다.
<code class="python">import urllib.request import shutil url = 'http://example.com/file.zip' with urllib.request.urlopen(url) as response, open('file.zip', 'wb') as out_file: shutil.copyfileobj(response, out_file)</code>
다운로드를 바이트로 저장
속도가 우선인 경우 다운로드한 데이터는 바이트열 객체에 직접 저장한 후 파일에 쓸 수 있습니다. 단, 이는 소규모 경우에만 적합합니다. 파일:
<code class="python">import urllib.request url = 'http://example.com/icon.png' with urllib.request.urlopen(url) as response, open('icon.png', 'wb') as out_file: data = response.read() # a `bytes` object out_file.write(data)</code>
압축 파일 처리
서버가 임의 액세스를 지원하는 경우 urllib.request.urlopen()을 사용하여 압축 파일을 처리할 수도 있습니다.
<code class="python">import urllib.request import gzip url = 'http://example.com/archive.gz' with urllib.request.urlopen(url) as response: with gzip.GzipFile(fileobj=response) as uncompressed: file_header = uncompressed.read(64) # a `bytes` object</code>
이러한 방법 중 하나를 구현하면 개발자는 URL이 문자열로 저장됩니다.
위 내용은 Python 3에서 문자열로 저장된 URL에서 파일을 다운로드하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!