需求:
1) 在阿里云SSL证书控制台下载Nginx类型的证书
2) 将下载下来的ZIP文件中的证书Key和PEM内容合并成一个新的.PEM结尾的证书
3)最终效果,利用python3读取压缩包文件内容并写入新文件,内容合并
4)以下是全部代码,注意:python3 读取文件后的内容是windows格式的,如果不进行转换一下放到生产是会出问题的,windos转unix。在文件写入的时候 以 "wb+"的二进制形式写入文件 即可得到unix格式的了。
#!/bin/python3
# -*- coding:utf-8 -*-
# author: Huxuezheng
# describe: 批量生成阿里云证书
import zipfile
import os
import chardet
# 文件名拼接路径
zip_paths = r'D:\PythonScript\Unzip\zipfile' #zip 文件放在此路径下
zip_list = []
for root, dirs, files in os.walk(zip_paths):
for file in files:
zip_dirs = os.path.join(root, file)
zip_list.append(zip_dirs) #将所有文件归纳成列表,循环操作
for zip in zip_list: #依次读取列表中的zip文件
project = zip.split('__')
project_name=(str(project[1]).split('_')[0]) #这里截取压缩包名作为新文件的名字
zfile = zipfile.ZipFile("%s" % zip, "r") #读取压缩文件
f = open("D:\\%s.pem" % project_name, 'wb+') #以wb+二进制形式写入文件内容为Unix格式,否则内容为windows格式
for files in zfile.namelist():
data = zfile.read(files)
f.write(data)
f.close()
zfile.close()