python脚本处理事务例子

起因

由于公司需求,需要从公司后台批量下载识别异常图片的图片压缩包,如果手动下载的话需要每个链接进行手动更改,对于链接手动更改的话容易看的头晕眼花,并且对于大批量压缩包下载的话效率很低,所以我想到将该项多重复机械化的操作用python完成。

分析

首先分析后台链接:从公司系统鼠标右键获取图片链接在这里插入图片描述
将链接写入old_address.txt文件,一个链接一行,然后拼接链接,将新地址写入new_address.txt,可以看到两个链接就开头跟结尾有点不同,所以我们进行字符串简单处理一下就行了。
在这里插入图片描述

字符处理

def get_new_url():
    old_url=''
    new_url=''
    with open('old_address.txt','r') as fr:
            for line in fr.readlines():
                old_url=line
                # 拼接新地址
                old_url=old_url[0:16]+'-image-production-'+line[23:]
                pattern = r'[/]'                      # 定义分隔符
                result = re.split(pattern, old_url) # 以pattern的值 分割字符串
                new_url+=old_url.replace('/'+result[-1],'.zip\n')
    with open('new_address.txt','w') as fr:
        fr.write(new_url)
    print('网址拼接成功')

步骤

  • 系统手动获得链接写入txt,处理链接,写入txt。
  • 按行读取链接,下载zip文件
  • 批量解压文件
  • 需要将图片上传后台,要求文件名不能有空格,批量重命名文件

将两链接处理完写入txt文件后开始下载测试一下。

old_address.txt

python脚本处理事务例子_第1张图片

new_address.txt

python脚本处理事务例子_第2张图片

下载测试

def get_zip():
    #获取新网址
    get_new_url()
    if not os.path.exists('zip'):
          os.makedirs('zip')
    with open('new_address.txt','r') as fr:
        for line in fr.readlines():
            try:
                line=line.strip('\n')
                file_name=line.split('/')[-1:][0]
                r = requests.get(line)
                with open("zip/%s"%file_name, "wb") as fr:
                     fr.write(r.content)
                time.sleep(2)
                print('下载压缩文件成功')
            except:
                continue
    un_zip()
    print('批量解压完成')

批量解压

def un_zip():
    """
    批量解压文件
    """
    filelist=os.listdir('zip')
    for i in filelist:
        zip_file = zipfile.ZipFile(r'zip/%s'%i)
        for names in zip_file.namelist():
            zip_file.extract(names,'unzip/'+i)
        zip_file.close()

批量重命名

#批量重命名文件
def new_file_name():
    filelist=os.listdir('06.23lingshiyichangchongkuang')
    path=r"C:\Users\Administrator\Desktop\get_error_img\06.23lingshiyichangchongkuang"
    n=10
    for i in filelist:
        i='\\%s'%i
        #设置新文件名
        newname='\\%s'%(str(n)+'.jpg')
        #用os模块中的rename方法对文件改名
        os.rename(path+i,path+newname)
        n+=1

使用帮助

"""
使用方法

首先在智能系统复制图片路径写入old_address.txt一个链接一行
然后看目录下是否有zip与unzip文件,有的话将其删除,没有就不用管
然后点击运行自动下载解压
下载完成后需要自己手动将unzip文件夹中的每个文件夹下的四张图片复制到一个文件夹下,然后运行批量重命名文件,需要自己手动改路径
因为标注系统不能有空格名,windows重命名会带空格

"""

项目文件

python脚本处理事务例子_第3张图片

你可能感兴趣的:(python,python)