Python 3.3 将文件下载到某个位置并保存为给定文件名的代码
Python 3.3 Code to Download a file to a location and save as a given file name
例如,我想在 'D://arXiv'.
位置保存文件名为 'Data Assimilation- A Mathematical Introduction' 的 .pdf 文件 @ http://arxiv.org/pdf/1506.07825
但是我有很多这样的文件。所以,我的输入是 .csv 文件的形式,其中的行由(分号是分隔符)给出:
url; file name; location.
我在这里找到了一些代码:https://github.com/ravisvi/IDM
但这对我来说有点高级解析。我想从更简单的事情开始。上面的功能似乎比我现在需要的要多——线程、暂停等。
那么你能不能给我写一个非常简单的代码来完成上述操作:
- 保存文件'Data Assimilation- A Mathematical Introduction'
- 来自“http://arxiv.org/pdf/1506.07825”
- 在 'D://arXiv'?
我想我可以将它概括为处理 .csv 文件。
或者,提示我一个开始的地方。 (github 仓库已经有了解决方案,太完美了!我想要更简单的。)我的猜测是,使用 Python,上面的任务应该不会超过 10 行代码。所以告诉我代码的重要组成部分,也许我能弄明白。
谢谢!
我会使用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")
使用 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()
例如,我想在 'D://arXiv'.
位置保存文件名为 'Data Assimilation- A Mathematical Introduction' 的 .pdf 文件 @ http://arxiv.org/pdf/1506.07825但是我有很多这样的文件。所以,我的输入是 .csv 文件的形式,其中的行由(分号是分隔符)给出:
url; file name; location.
我在这里找到了一些代码:https://github.com/ravisvi/IDM
但这对我来说有点高级解析。我想从更简单的事情开始。上面的功能似乎比我现在需要的要多——线程、暂停等。
那么你能不能给我写一个非常简单的代码来完成上述操作:
- 保存文件'Data Assimilation- A Mathematical Introduction'
- 来自“http://arxiv.org/pdf/1506.07825”
- 在 'D://arXiv'?
我想我可以将它概括为处理 .csv 文件。
或者,提示我一个开始的地方。 (github 仓库已经有了解决方案,太完美了!我想要更简单的。)我的猜测是,使用 Python,上面的任务应该不会超过 10 行代码。所以告诉我代码的重要组成部分,也许我能弄明白。
谢谢!
我会使用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")
使用 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()