由于公司需求,需要从公司后台批量下载识别异常图片的图片压缩包,如果手动下载的话需要每个链接进行手动更改,对于链接手动更改的话容易看的头晕眼花,并且对于大批量压缩包下载的话效率很低,所以我想到将该项多重复机械化的操作用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文件后开始下载测试一下。
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重命名会带空格
"""