gpt4 book ai didi

python - 如何在Python中下载具有默认名称和类型的文件

转载 作者:行者123 更新时间:2023-12-01 03:44:42 26 4
gpt4 key购买 nike

我是 Python 新手,发现了一个可以下载数据并将数据保存为 demofile.csv 的代码

   import requests

url = "https://example.com/demofile"
r = requests.get(url)

filename = url.split('/')[-1]

with open(filename+".csv", "wb") as code:
code.write(r.content)

现在,我不想明确指定任何名称。我只希望通过 Python 脚本打开该 URL,并使用默认名称和类型(我们手动下载文件时出现的名称和类型)下载文件。

此外,这个文件应该保存在其他目录中,而不是保存 python 代码的文件夹中。

请帮忙。

最佳答案

您需要查看“Content-Disposition” header ,请参阅 kender 的解决方案。

How to download a file using python in a 'smarter' way?

发布他的解决方案,修改后具有指定输出文件夹的功能:

from os.path import basename
import os
from urlparse import urlsplit
import urllib2

def url2name(url):
return basename(urlsplit(url)[2])

def download(url, out_path):
localName = url2name(url)
req = urllib2.Request(url)
r = urllib2.urlopen(req)
if r.info().has_key('Content-Disposition'):
# If the response has Content-Disposition, we take file name from it
localName = r.info()['Content-Disposition'].split('filename=')[1]
if localName[0] == '"' or localName[0] == "'":
localName = localName[1:-1]
elif r.url != url:
# if we were redirected, the real file name we take from the final URL
localName = url2name(r.url)

localName = os.path.join(out_path, localName)
f = open(localName, 'wb')
f.write(r.read())
f.close()

download("https://example.com/demofile", '/home/username/tmp')

关于python - 如何在Python中下载具有默认名称和类型的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39103039/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com