Python读取当前程序目录input文件夹下多个zip文件,将zip里面的Excel第0个sheet表里的A5单元格里的图片保存,图片保存路径在当前程序output文件夹里,新建1个文件夹名为 Excel的sheet名代码,每行添加注释
时间: 2024-05-12 10:17:24 浏览: 89
python批量打开一个文件夹下的所有工作簿.zip
好的,我理解了你的问题。以下是解决方案:
1. 首先,你需要导入Python的zipfile和openpyxl库。
2. 接着,你可以使用os库获取当前程序所在目录,然后在input文件夹下查找所有的zip文件:
```python
import os
import zipfile
input_dir = os.path.join(os.getcwd(), "input")
zip_files = [f for f in os.listdir(input_dir) if f.endswith('.zip')]
for zip_file in zip_files:
with zipfile.ZipFile(os.path.join(input_dir, zip_file)) as z:
# 处理第0个sheet表
sheet_name = z.sheetnames[0]
sheet = z.open(sheet_name)
workbook = openpyxl.load_workbook(sheet)
worksheet = workbook.active
image_cell = worksheet['A5']
image_path = image_cell.value
# 保存图片到输出文件夹
output_dir = os.path.join(os.getcwd(), "output", sheet_name)
os.makedirs(output_dir, exist_ok=True)
image_name = os.path.basename(image_path)
with open(os.path.join(output_dir, image_name), 'wb') as f:
f.write(z.read(image_path))
# 添加注释
comments = ['这是图片', '这是另外一个注释']
for i, comment in enumerate(comments):
cell = worksheet.cell(row=image_cell.row+i+1, column=1)
cell.comment = openpyxl.comments.Comment(comment, 'author')
workbook.save(os.path.join(output_dir, 'output.xlsx'))
```
这段代码将遍历input文件夹下的所有zip文件,打开每个zip文件并处理第0个sheet表。获取图片路径后,将图片保存到output文件夹并创建Excel文件,最后在每行下方添加注释。
注意,保存的图片文件名可能会与其原始名称不同,因此代码中使用os.path.basename()方法获取保存到输出文件夹中的图片文件名。
希望这个解决方案可以帮助你,如有问题可以继续提问。
阅读全文