arv*_*dch 141 python file download save
我是Python的新手,我一直在浏览本网站上的问答,以回答我的问题.但是,我是初学者,我发现很难理解一些解决方案.我需要一个非常基本的解决方案
有人可以向我解释一个简单的解决方案:"通过http下载文件"和"将其保存到Windows中的磁盘"吗?
我也不确定如何使用shutil和os模块.
我想下载的文件不到500 MB,是一个.gz存档文件.如果有人可以解释如何提取存档并利用其中的文件,那就太棒了!
这是一个部分解决方案,我从各种答案中总结出来:
import requests
import os
import shutil
global dump
def download_file():
global dump
url = "http://randomsite.com/file.gz"
file = requests.get(url, stream=True)
dump = file.raw
def save_file():
global dump
location = os.path.abspath("D:\folder\file.gz")
with open("file.gz", 'wb') as location:
shutil.copyfileobj(dump, location)
del dump
Run Code Online (Sandbox Code Playgroud)
有人可以指出错误(初学者级别)并解释任何更简单的方法来做到这一点?
谢谢!
Blu*_*Ice 193
一种干净的下载文件的方法是:
import urllib
testfile = urllib.URLopener()
testfile.retrieve("http://randomsite.com/file.gz", "file.gz")
Run Code Online (Sandbox Code Playgroud)
这将从网站下载文件并为其命名file.gz
.这是我最喜欢的解决方案之一,通过urllib和python下载图片.
此示例使用urllib
库,它将直接从源检索文件.
dpa*_*ani 105
如前所述这里:
import urllib
urllib.urlretrieve ("http://randomsite.com/file.gz", "file.gz")
Run Code Online (Sandbox Code Playgroud)
Ali*_*Ali 32
我用wget.
简单而好的图书馆,如果你想要举例?
import wget
file_url = 'http://johndoe.com/download.zip'
file_name = wget.download(file_url)
Run Code Online (Sandbox Code Playgroud)
wget模块支持python 2和python 3版本
Sau*_*dav 29
使用wget,urllib和request的四种方法.
#!/usr/bin/python
import requests
from StringIO import StringIO
from PIL import Image
import profile as profile
import urllib
import wget
url = 'https://tinypng.com/images/social/website.jpg'
def testRequest():
image_name = 'test1.jpg'
r = requests.get(url, stream=True)
with open(image_name, 'wb') as f:
for chunk in r.iter_content():
f.write(chunk)
def testRequest2():
image_name = 'test2.jpg'
r = requests.get(url)
i = Image.open(StringIO(r.content))
i.save(image_name)
def testUrllib():
image_name = 'test3.jpg'
testfile = urllib.URLopener()
testfile.retrieve(url, image_name)
def testwget():
image_name = 'test4.jpg'
wget.download(url, image_name)
if __name__ == '__main__':
profile.run('testRequest()')
profile.run('testRequest2()')
profile.run('testUrllib()')
profile.run('testwget()')
Run Code Online (Sandbox Code Playgroud)
testRequest - 4469882函数在20.236秒内调用(4469842个原始调用)
testRequest2 - 8580函数调用(8574个原始调用),0.072秒
testUrllib - 3836函数调用(3775个原始调用),0.036秒
testwget - 在0.020秒内进行3489次函数调用
For Python3+ URLopener
is deprecated.
And when used you will get error as below:
url_opener = urllib.URLopener() AttributeError: module 'urllib' has no attribute 'URLopener'
So, try:
import urllib.request
urllib.request.urlretrieve(url, filename)
Run Code Online (Sandbox Code Playgroud)
异国情调的 Windows 解决方案
import subprocess
subprocess.run("powershell Invoke-WebRequest {} -OutFile {}".format(your_url, filename), shell=True)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
267467 次 |
最近记录: |