Python3(19):Python3 request下载文件代码(可以直接调用)
一、requests
库下载和上传
使用Python中的requests
库,你可以方便地进行下载和上传操作。以下是简单的示例:
import requests
url = 'https://example.com/file.zip' # 替换为你要下载的文件的URL
response = requests.get(url)
if response.status_code == 200:
with open('downloaded_file.zip', 'wb') as file:
file.write(response.content)
print('下载成功!')
else:
print(f'下载失败,状态码: {response.status_code}')
上传文件
import requests
url = 'https://example.com/upload' # 替换为你要上传的目标URL
files = {'file': open('local_file.txt', 'rb')} # 替换为你要上传的本地文件路径
response = requests.post(url, files=files)
if response.status_code == 200:
print('上传成功!')
else:
print(f'上传失败,状态码: {response.status_code}')
在上传文件的例子中,files
参数是一个字典,其中键是字段的名称,值是包含文件内容的打开的文件对象。确保替换示例中的URL和文件路径以符合你的实际需求。
二、Python3 下载文件示例
1、下载示例
# -*- coding: utf-8 -*-
"""
Create by HMF on 2021/02/05.
"""
import re,time
import requests
import json
from casb import Login
class Getfile(object): #下载文件
def __init__(self,url,headers):
self.url=url
self.headers=headers
def getheaders(self):
try:
r = requests.head(self.url,headers=self.headers,verify=False)
rs_headers = r.headers
return rs_headers
except Exception as e:
print(e)
def getfilename(self): #获取默认下载文件名
if 'Content-Disposition' in self.getheaders():
file = self.getheaders().get('Content-Disposition')
#filename = re.findall('filename="(.*)"',file)
filename = re.split("=", file)[1]
if filename:
#print (filename)
return filename
def downfile(self,filename): #下载文件
self.r = requests.get(self.url,headers=self.headers, stream=True, verify=False)
with open(filename, "wb") as code:
for chunk in self.r.iter_content(chunk_size=1024): #边下载边存硬盘
if chunk:
code.write(chunk)
time.sleep(1)
if __name__ == '__main__':
#登录
host="10.1.1.181"
lo=Login(host)
accessToken =lo.login()
print(accessToken)
# 获取文件名$下载客户端
down_url = "https://"+host+"/create-download?random=1612169115912" # 目标下载链接
header_all= {"Content-Type": "application/json"}
header_all['Authorization'] = "Bearer " + accessToken
#print (down_url,header_all)
#r =Getfile(down_url,header_all).getheaders() #获得head,调试用
filename = Getfile(down_url, header_all).getfilename()
print(filename)
Getfile(down_url, header_all).downfile(filename)
2、登录代码:
# -*- coding: utf-8 -*-
"""
Create by HMF on 2021/02/05
"""
import requests
import json
class Login(object): #登录
def __init__(self,host):
self.host=host
def login(self):
try:
requests.packages.urllib3.disable_warnings()
header = {"Content-Type": "application/json"}
data = {"username": "YWWSWW", "password": "bGlhblNoaTIwMjA="}
url = "https://"+self.host+"/login?random=1612094645702"
#print (url)
response = requests.post(url, data=json.dumps(data), headers=header, verify=False)
apijson_login = response.json() # 获取请求返回实际结果的json串值
#print(apijson_login)
accessToken = apijson_login["data"]["accessToken"]
return accessToken
except Exception as e:
print(e)