python将当前文件夹下的所有excel文件打包成一份需要密码才能打开的zip文件
时间: 2024-09-10 14:09:47 浏览: 80
在Python中,你可以使用`os`模块来遍历文件夹,`pandas`处理Excel文件,`zipfile`模块创建并压缩ZIP文件,并结合`getpass`模块获取用户输入的密码。以下是一个简单的示例:
```python
import os
import zipfile
import pandas as pd
from getpass import getpass
# 获取当前工作目录
current_dir = os.getcwd()
# 定义函数来打包文件
def pack_excel_to_zip(password):
# 创建一个ZipFile对象,指定压缩文件名和模式('w'表示写入)
zip_file_name = 'password_protected.zip'
with zipfile.ZipFile(zip_file_name, 'w', zipfile.ZIP_DEFLATED) as zf:
for filename in os.listdir(current_dir): # 遍历当前目录
if filename.endswith('.xls') or filename.endswith('.xlsx'): # 只操作Excel文件
file_path = os.path.join(current_dir, filename)
# 使用pandas读取Excel文件,然后将其数据添加到ZIP中
df = pd.read_excel(file_path)
excel_data = df.to_csv(index=False) # 转换为CSV格式添加
zf.writestr(filename[:-5] + '.csv', excel_data) # 无密码保存CSV,保留原文件名
# 对ZIP文件设置密码
zf.setpassword(bytes(password, encoding='utf-8'))
# 获取用户输入的密码
password = getpass('Please enter the password to protect the ZIP (will not be displayed): ')
# 执行打包操作
pack_excel_to_zip(password)
print(f"Excel files have been packed into {zip_file_name} with provided password.")
阅读全文