인터넷과 상호 작용하는 프로그램을 만들 때 파일을 다운로드해야 하는 경우가 많습니다. 웹 서버에서. Python 3에서는 이 작업을 수행하는 방법이 여러 가지가 있습니다.
처음에 제공된 코드는 함수가 URL 인수에 대해 바이트 유형을 기대하기 때문에 오류가 발생하지만 추출된 코드는 JAD 파일의 URL은 문자열입니다. URL이 문자열로 저장된 파일을 다운로드하려면 UTF-8 인코딩을 사용하여 파일을 바이트 유형으로 변환하세요.
<code class="python">import urllib.request def downloadFile(URL=None): h = urllib.request.urlopen(URL.encode('utf-8')) return h.read() downloadFile(URL_from_file)</code>
여러 가지 대체 방법이 있습니다. 웹에서 파일 다운로드:
urllib.request.urlopen: urlopen의 응답을 읽어 웹페이지의 콘텐츠를 가져옵니다.
<code class="python">response = urllib.request.urlopen(URL) data = response.read() # a `bytes` object text = data.decode('utf-8') # a `str`</code>
urllib.request.urlretrieve: 파일을 로컬로 다운로드하고 저장합니다:
<code class="python">urllib.request.urlretrieve(URL, file_name)</code>
urllib.request. urlopen quitil.copyfileobj: 파일 다운로드에 대해 강력히 권장되는 가장 올바른 접근 방식을 제공합니다:
<code class="python">with urllib.request.urlopen(URL) as response, open(file_name, 'wb') as out_file: shutil.copyfileobj(response, out_file)</code>
urllib.request.urlopen 바이트 객체에 쓰기: 더 간단한 옵션이지만 작은 파일에만 권장됩니다.
<code class="python">with urllib.request.urlopen(URL) as response, open(file_name, 'wb') as out_file: data = response.read() # a `bytes` object out_file.write(data)</code>
마지막으로 압축 데이터를 즉시 추출하는 것도 가능합니다. 가능:
<code class="python">url = 'http://example.com/something.gz' with urllib.request.urlopen(url) as response: with gzip.GzipFile(fileobj=response) as uncompressed: file_header = uncompressed.read(64) # a `bytes` object</code>
위 내용은 Python 3에서 웹에서 파일을 다운로드하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!