【问题标题】:Download a file from the internet in python?用python从互联网下载文件?
【发布时间】:2021-04-09 10:42:35
【问题描述】:
  • 我在命名我下载的文件并为其分配文件类型时遇到问题。 (参见代码第 4 行)。
  • 将文件保存在任何位置,我专门分配给它。与程序不在同一目录中。例如,在下载、文档或任何目录中。
import requests
downloadUrl = input('Enter URL: ')
file_url = requests.get(downloadUrl)
dir_path = input("Enter path and name of the file: ")
f = open(dir_path,'a+')

任何输入?

【问题讨论】:

  • 这看起来很像this other recent question
  • @GinoMempin 是的!但是没有回答,所以我仍然需要回答先生,谢谢

标签: python-3.x python-requests filepath


【解决方案1】:

您打开的是请求对象而不是文件路径

file_url = requests.get(downloadUrl)
with open(file_url, 'w+') as f:

您需要在磁盘上的某个地方打开一个文件路径并写入该路径

请参阅 https://stackabuse.com/download-files-with-python/ 上的使用请求模块

编辑:来自帖子中的 cmets

In [584]: link = "https://www.annualreports.com/HostedData/AnnualReportArchive/3/NASDAQ_QFIN_2018.pdf"

In [585]: import requests

In [586]: file_url = requests.get(link)

In [587]: with  open('/tmp/NASDAQ_QFIN_2018.pdf', 'wb') as f:
    ...:     f.write(file_url.content)
    ...:

In [588]: ls -al /tmp/NASDAQ_QFIN_2018.pdf
-rw-r--r--  1 ME  wheel  1796199  9 Apr 15:21 /tmp/NASDAQ_QFIN_2018.pdf

【讨论】:

  • 我认为您的意思是with open(filepath, 'w+') as f:,因为file_url 包含响应而不是您要创建的文件的网址。
  • 感谢您的澄清,但在添加 with open(filepath, 'w+') as f:后,我收到 PermissionError: [Errno 13] Error >
  • 那是因为你试图打开一个目录而不是一个你需要下载到C:\Users\PacY\Downloads\myfilename.whatever的文件
  • 好的。我已经做了。现在我可以输入userinput 的路径,参考上面的编辑代码。脚本会下载指定路径的文件,但是问题是下载的文件是空的。 0KB
  • 您尝试下载的示例 URL 是什么?
猜你喜欢
  • 1970-01-01
  • 2011-11-28
  • 1970-01-01
  • 2013-04-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-14
  • 2013-11-30
相关资源
最近更新 更多