Python(35):Python3 通过https上传文件和下载文件

这篇具有很好参考价值的文章主要介绍了Python(35):Python3 通过https上传文件和下载文件。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Python(35):Python3 通过https上传文件和下载文件

Python http方式的下载,参考:https://blog.csdn.net/fen_fen/article/details/113753983

https需要先安装需要的模块文章来源地址https://www.toymoban.com/news/detail-816567.html

1、上传示例

1.1、调用:

upload_strategy(access_token,"123456789")

1.2、上传代码

global pkcs12_filename, pkcs12_password
pkcs12_filename = './conf/xxx-client-cert-xxx.p12'
pkcs12_password = 'xxx'
self.host=10.1.1.101



# 上传文件
    def upload_file(self, access_token,appid):
        #warnings.simplefilter('ignore', ResourceWarning)
        # filepath = os.getcwd()
        # print(filepath)
        # print(filepath+"\data\\"+fileName)
        try:
            header_up = {"Authorization": "Bearer " + access_token}
            file=open("./data/"+fileName, "rb")
            files={"file": file}
            #files = {"file": open("./data/"+fileName, "rb")}
            url = "https://"+self.host+"/xxx/v1/xxx/strategy/xxx?appId="+appid

            api_json = base_request.upload_request(url, header_up, files)
            if api_json["code"] == 0:
                print(">>上传策略成功。")
            else:
                print(">>上传策略失败,", api_json)
            file.close()
            return api_json
        except Exception as e:
            print(">>上传策略失败,Exception:", e)

# 基础请求:上传
def upload_request(url, headers, files):
    response = requests_pkcs12.post(url, headers=headers, files=files,
                                    pkcs12_filename=pkcs12_filename,
                                    pkcs12_password=pkcs12_password, verify=False)
    api_json = response.json()  # 获取请求返回实际结果的json串值
    return api_json

2、下载示例

 2.1、下载调用:

   self.host=10.1.1.101
 
    # 下载客户端
    def download_client(self, header_all):
        try:
            url = "https://" + self.host + "/xxx/v1/xxx/download-client"
            getfile = Getfile(url, header_all)
            filename = getfile.getfilename()
            #print(filename)
            if filename:
                getfile.download(filename)

        except Exception as e:
            print(">>下载客户端失败,Exception: ", e)


header_all = {"Content-Type": "application/json;charset=UTF-8"}
header_all['Authorization'] = "Bearer " + access_token
download_client(header_all)


2.2、Python3 https下载文件工具类:

# -*- coding: utf-8 -*-

"""
Create by HMF on 2024/01/11.
"""
import re,time
import requests
import requests_pkcs12

class Getfile(object):  # 下载文件
    global pkcs12_filename, pkcs12_password
    pkcs12_filename = './conf/xxx-client-cert-xxx.p12'
    pkcs12_password = 'xxx'

    def __init__(self, url, headers):
        self.url = url
        self.headers = headers

    def getheaders(self):
        try:
            #r = requests_pkcs12.head(self.url, headers=self.headers, verify=False)
            r = requests_pkcs12.head(self.url, headers=self.headers, pkcs12_filename=pkcs12_filename, pkcs12_password=pkcs12_password, verify=False)
            rs_headers = r.headers
            return rs_headers
        except Exception as e:
            print(e)

    # 获取默认下载文件名
    def getfilename(self):
        try:
            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
            else:
                print("下载文件失败")
        except Exception as e:
            print(e)

    # 下载文件
    def download(self, filename): 
        try:
            #self.r = requests_pkcs12.get(self.url, headers=self.headers, stream=True, verify=False)
            self.r =requests_pkcs12.get(self.url, headers=self.headers,pkcs12_filename=pkcs12_filename,
                                 pkcs12_password=pkcs12_password, 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)
        except Exception as e:
            print(e)


到了这里,关于Python(35):Python3 通过https上传文件和下载文件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python学习笔记:Requests库安装、通过url下载文件

    在pipy或者github下载,通常是个zip,解压缩后在路径输入cmd,并运行以下代码  安装完成后,输入python再输入import requests得到可以判断时候完成安装  2.通过url下载文件 使用的是urllib模块

    2024年02月10日
    浏览(27)
  • python flask创建服务器实现文件的上传下载,已获千赞

    } 二、后端代码(python) import os from string import Template from flask import Flask, send_file,request,jsonify from flask_cors import CORS import time app = Flask( name ) absolute = os.path.dirname( file ) CORS(app) app.debug = True FOLDER = os.path.join(absolute, ‘save_file’) HOST = “localhost” PORT = 8080 UPLOAD = ‘upload’ app.config

    2024年04月22日
    浏览(29)
  • Python3 安装后问题(yum/https)

    问题: 分析: 原 python命令软连接指向linux默认安装的python2.x版本、 安装python3时将原python命令的软连接指向了python3 、 yum命令正常情况下调用python2.x 版本、所以需要修改yum命令文件 解决方案: 修改yum命令文件 第一行 原 #!/usr/bin/python 修改为 #!/usr/bin/python2.7 问题: 分析:

    2023年04月26日
    浏览(28)
  • linux文件通过finalshell的上传和下载

    我们可以通过finalshell工具,方便的和虚拟机进行数据交换 在finalshell下方的窗口中,提供了linux文件系统视图: 浏览文件系统,找到合适的文件,右键点击下载,即可传输到本地电脑 浏览文件系统,找到合适的目录,将本地电脑的文件拖拽进入,即可方便的上传数据到linux中

    2024年02月11日
    浏览(30)
  • python3.9下载和安装教程,python3.9下载pygame2.4.0

    大家好,小编来为大家解答以下问题,python3.9下载哪个版本的tensorflow,python3.9下载哪个版本pytorch,今天让我们一起来看看吧! 目录 一、Python 下载 二、Python 安装 三、Python 配置 四、Python 验证 官网下载地址:Python Releases for Windows | Python.org (1)找到已经下载好的 exe 安装包

    2024年04月25日
    浏览(37)
  • python3ide手机安卓版下载,python3下载手机安卓版

    大家好,小编来为大家解答以下问题,python3ide手机安卓版下载,python3下载手机安卓版,今天让我们一起来看看吧! 大家好,给大家分享一下python3ide安卓版官网下载,很多人还不知道这一点。下面详细解释一下Python中Turtle画蝴蝶。现在让我们来看看! 在学习python的过程中,

    2024年04月24日
    浏览(32)
  • C/C++ 通过HTTP实现文件上传下载

    WinInet(Windows Internet)是 Microsoft Windows 操作系统中的一个 API 集,用于提供对 Internet 相关功能的支持。它包括了一系列的函数,使得 Windows 应用程序能够进行网络通信、处理 HTTP 请求、FTP 操作等。WinInet 提供了一套完整的网络通信工具,使得开发者能够轻松地构建支持网络功

    2024年02月19日
    浏览(37)
  • 下载python3.10版本pycharm仍显示python3.1以及官网如何下载旧版版本python

    第二节 安装Pycharm以及遇到的问题 目录 Day01新手小白学python 前言 一、pycharm下载安装 二、遇到的问题 1.下载的是python3.10版本仍显示python3.1 has reached its end-od-life and is no longer supported          2.官网如何下载旧版如3.9版本python         3.自定义安装路径 总结 安装Pycha

    2024年02月06日
    浏览(38)
  • python3下载手机安卓版,python下载手机版最新

    大家好,本文将围绕python3下载手机安卓版展开说明,python下载手机版最新是一个很多人都想弄明白的事情,想搞清楚python手机版下载3.7.3需要先了解以下几个事情。 1、先去python官网下载python3的源码包,网址:https://www.python.org/ 1)进去之后点击导航栏的Downloads,出现python最新

    2024年01月21日
    浏览(29)
  • python3ide下载汉化破解版,python3ide下载手机安卓版

    大家好,小编来为大家解答以下问题,python3ide下载汉化破解版,python3ide下载手机安卓版,今天让我们一起来看看吧! Source code download: 本文相关源码 Pydroid3app是个强大好用的编程软件,软件使用起来比较方便,包含强大的编译器,能够帮助用户在手机上轻松完成python编程,还

    2024年04月13日
    浏览(61)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包