1.将已知xlsx文件后缀直接修改为zip,这里不能使用xls文件,因为xls文件在修改后缀后内容不完整,他本身只是一个二进制文件。
def change_file_name(file_path, new_type='.zip'):
extend = os.path.splitext(file_path)[1]
file_name = os.path.basename(file_path) # 获取文件名
new_name = str(file_name.split('.')[0]) + new_type # 新的文件名,命名为:xxx.zip
dir_path = os.path.dirname(file_path) # 获取文件所在目录
new_path = os.path.join(dir_path, new_name) # 新的文件路径
if os.path.exists(new_path):
os.remove(new_path)
os.rename(file_path, new_path) # 保存新文件,旧文件会替换掉
file_zip = zipfile.ZipFile(new_path, 'r')
file_name = os.path.basename(new_path) # 获取文件名
zipdir = os.path.join(os.path.dirname(new_path), str(file_name.split('.')[0])) # 获取文件所在目录
for files in file_zip.namelist():
file_zip.extract(files, os.path.join(new_path, zipdir)) # 解压到指定文件目录
file_zip.close()
return new_path
2.读取指定sheet表在文件夹中的相应图片。在网上查找了很多相关方法,都没有针对图片顺序做处理的,只是单纯的提取图片,为了满足我的需求,通过xml文件中图片的末尾行排序来获取图片顺序,进而可以按序命名并存入数据库。这里图片只能针对PNG图片,在处理数据时发现其他类型图片在解压后的xml文件中有关顺序的xml文件组成不符合处理需求。(这里涉及到xml文件内容提取问题)