python download不带文件名的文件/文件流

需求:需要下载文件/文件流,文件为zip的压缩包,url不现实任何文件格式

  • 下载文件
    def download_file():
        filepath = './data/'
        file_name = '{}{}.zip'.format(filepath, self.day)

        url = 'https://xx.com/download.do?custId=1103383695&taskId=10002779'
        header = {
            'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3',
            'accept-encoding': 'gzip, deflate, br',
            'accept-language': 'zh-CN,zh;q=0.9',
            'cookie': COOKICE,
            'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.87 Safari/537.36'
        }

        req = requests.get(url=url, headers=header)
        with open(file_name, 'wb') as f:
            f.write(req.content)

		# 解压缩
        import zipfile
        with zipfile.ZipFile(file_name) as zf:
            zf.extractall(path=filepath)

        import os
        os.remove(file_name)
  • 下载文件流
    def download_file(url, method='get'):
        filepath = './data/'
        file_name = '{}{}.zip'.format(filepath, self.day)

        paras = {
    'access_token': token,
    'selectDate': yestoday
}

        if method == 'get':
            req = requests.get(url=url, params=paras, stream=True)
        else:
            req = requests.post(url=url, json=paras, stream=True)
  

        with open(file_name, 'wb') as f:
            for chunk in req.iter_content(chunk_size=1024):
                if chunk:
                    f.write(chunk)

		# 解压缩
        import zipfile
        try:
	        with zipfile.ZipFile(file_name) as zf:
    	        zf.extractall(path=filepath)
		
	        import os
	        os.remove(file_name)
	        
		except:
			print('the file is not a correct zip file')
在Linux系统中,如果文件名后面带有@符号,通常表示这个文件是一个符号链接(symbolic link)。符号链接是一种特殊类型的文件,它指向另一个文件或目录。当我们打开符号链接时,实际上是打开它所指向的文件或目录。 引用中提到,在使用ls命令查看文件时,如果文件名后面带有@符号,且文件类型不是-也不是d,而是l,那就是一个符号链接文件。我们可以使用ls -alh命令来查看文件的详细信息,包括权限、拥有者、文件大小等。 引用中给出了处理带括号的文件名的方法。如果文件名中包含括号,我们需要在括号前加上反斜杠\进行转义。这样可以避免在处理文件名时出现错误。 总结起来,当我们在Linux系统中看到文件名后面带有@符号时,通常表示这是一个符号链接文件,而不是普通的文件或目录。如果文件名中包含括号,我们需要对括号进行处理,以防止出现错误。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Linux中以@结尾的文件](https://blog.csdn.net/weixin_47826078/article/details/118634663)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [linux下,文件名带括号如何处理](https://blog.csdn.net/mathcompfrac/article/details/53869203)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [使用Python代码调用命令行来执行MySQL数据库备份和恢复操作](https://download.csdn.net/download/weixin_44609920/88222336)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值