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

在這裏插入圖片描述

new_address.txt

在這裏插入圖片描述

下載測試

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重命名會帶空格

"""

項目文件

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章