将 url 保存到文件并将其保存在内存中

fan*_*ous 2 python urllib

在 Python 3.3 中,有没有一种方法可以一步将 url 保存到文件并将文件保存在内存中?我想避免下载文件两次(浪费带宽),也想避免将文件下载到磁盘,然后从磁盘读取文件(浪费磁盘 IO)。

要将其下载到内存中,我看到:

import urllib.request
myurl = 'http://blahblah/acsvfile.csv'
myreq = urllib.request.urlopen(myurl)    
mydata = myreq.read()
Run Code Online (Sandbox Code Playgroud)

并将其直接下载到磁盘,我看到了这一点(它似乎很快就会被弃用):

urllib.request.urlretrieve(myurl, myfilename)
Run Code Online (Sandbox Code Playgroud)

但是我看不到如何让 urlopen 也将文件的原始副本保存到磁盘,或者 urlretrieve 也让我读取 url 的数据。

提前感谢您的任何想法。

Ste*_*ima 6

只需写入mydata文件:

import urllib.request
myurl = 'http://blahblah/acsvfile.csv'
myreq = urllib.request.urlopen(myurl)    
mydata = myreq.read()
with open('mydata.html', 'wb') as ofile:
    ofile.write(mydata)
Run Code Online (Sandbox Code Playgroud)