Python 3.3 Code将文件下载到某个位置并另存为给定的文件名

时间:2015-06-28 13:10:42

标签: python python-3.x download

例如,我想使用文件名保存.pdf文件@ http://arxiv.org/pdf/1506.07825:' Data Assimilation- A Mathematical Introduction'在位置' D:// arXiv'。

但我有很多这样的文件。所以,我的输入是.csv文件的形式,行由(分号是分隔符)给出:

url; file name; location.

我在这里找到了一些代码:https://github.com/ravisvi/IDM

但这对我来说有点高级解析。我想从更简单的事情开始。以上似乎比我现在需要的功能更多 - 线程,暂停等。

那么请你写一个非常小的代码来完成上述工作:

  1. 保存文件' Data Assimilation- A Mathematical Introduction'
  2. 来自' http://arxiv.org/pdf/1506.07825'
  3. 在' D:// arXiv'?
  4. 我想我可以将其概括为处理.csv文件。

    或者,提示我一个开始的地方。 (github存储库已经有了一个解决方案,它太完美了!我想要一些更简单的东西。)我的猜测是,使用Python,上面的任务应该是可能的,不超过10行代码。所以告诉我代码的重要组成部分,也许我可以搞清楚。

    谢谢!

2 个答案:

答案 0 :(得分:0)

我会使用requests模块,你可以pip install requests。 然后,代码很简单:

import requests

response = requests.get(url)
if response.ok:
    file = open(file_path, "wb+") # write, binary, allow creation
    file.write(response.content)
    file.close()
else:
    print("Failed to get the file")

答案 1 :(得分:0)

使用Python 3.6.5

这里是可以创建文件夹并将文件保存在文件夹中的方法。 dataURL-完整的URL路径 data_path-文件需要保存的位置。 tgz_path-带有扩展名的数据文件的名称。

def fetch_data_from_tar(data_url,data_path,tgz_path):
if not os.path.isdir(data_path):
    os.mkdir(data_path)
    print ("Data Folder Created @ Path", data_path)
else: 
    print("Folder path already exists")
tgz_path = os.path.join(data_path,tgz_path)
urllib.request.urlretrieve(data_url,filename=tgz_path)
data_tgz = tarfile.open(tgz_path)
data_tgz.extractall(path=data_path)
data_tgz.close()