Python3.8 urllib下载一个excel文件中某列保存的所有附件

这篇博客介绍了在Python3中如何利用urllib.request模块下载Excel文件,并在文件名重复时自动添加后缀进行重命名。示例代码展示了读取Excel表格中的链接,根据申请号保存文件,并在遇到同名文件时增加序号作为后缀。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

网上得知,python3.x 不再有urllib2, 
python3中,urllib和urllib2进行了合并,现在只有一个urllib模块


样式为:
 

申请号....附件地址
123http://..................xls
456http://..................xls
import pandas as pd
import os
import re

import urllib.request as request

def auto_save_file(path):
    directory, file_name = os.path.split(path)
    while os.path.isfile(path):
        pattern = '(\d+)\)\.'
        if re.search(pattern, file_name) is None:
            file_name = file_name.replace('.', '(0).')
        else:
            current_number = int(re.findall(pattern, file_name)[-1])
            new_number = current_number + 1
            file_name = file_name.replace(f'({current_number}).', f'({new_number}).')
        path = os.path.join(directory + os.sep + file_name)
    return path

def downloadExcel():
    df = pd.read_excel(r'C:\Users\zx\PycharmProjects\pythonProject\testDownload.xls')
    res = df.loc[:, ['申请号', '附件地址']]
    for i in range((res.shape[0])):
        myurL = res['附件地址'][i]
        filepath = '{0}{1}.xls'.format("e:\\", res['申请号'][i])
        request.urlretrieve(myurL, auto_save_file(filepath))

下载 文档命名,一步搞定。太轻松了。 因为是按照申请号重命名,当申请号重复时,从第二份同名的开始文件名加后缀(0),(1),(2)等等

可以使用 Python 自带的 urllib 库来下载文件。可以使用 urllib.request.urlretrieve() 方法来下载文件。 以下是一个示例代码: ```python import urllib.request url = 'http://www.example.com/file.txt' filename = 'file.txt' urllib.request.urlretrieve(url, filename) ``` 在上面的代码中,url 是要下载文件的 URL,filename 是保存文件的路径和文件名。 如果你需要下载文件需要身份验证,可以使用 urllib.request.HTTPBasicAuthHandler() 方法来添加身份验证信息。以下是一个示例代码: ```python import urllib.request import urllib.error url = 'http://www.example.com/file.txt' filename = 'file.txt' username = 'your_username' password = 'your_password' password_mgr = urllib.request.HTTPPasswordMgrWithDefaultRealm() password_mgr.add_password(None, url, username, password) auth_handler = urllib.request.HTTPBasicAuthHandler(password_mgr) opener = urllib.request.build_opener(auth_handler) try: urllib.request.install_opener(opener) urllib.request.urlretrieve(url, filename) except urllib.error.URLError as e: print(e.reason) ``` 在上面的代码中,我们使用了 HTTPPasswordMgrWithDefaultRealm() 方法来创建密码管理器,添加了我们的用户名和密码。然后使用 HTTPBasicAuthHandler() 方法来创建身份验证处理器。使用 build_opener() 方法来创建 opener 对象,使我们能够使用身份验证访问 URL。最后使用 install_opener() 方法来安装 opener 对象。如果下载过程中出现错误,我们打印错误信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值