通过python实现遍历当前文件夹,如果是zip压缩包就解压,压缩包有可能是加密的
时间: 2024-09-11 12:14:46 浏览: 47
Python实现凯撒密码加密.zip
在Python中,你可以使用`os`, `shutil`, 和 `zipfile` 这些内置模块来实现这个功能。下面是一个简单的示例,它会遍历指定目录,如果遇到`.zip` 文件,尝试解压它们:
```python
import os
import shutil
import zipfile
def extract_if_zip(directory):
for root, dirs, files in os.walk(directory):
for file in files:
if file.endswith('.zip'): # 检查是否为.zip文件
zip_path = os.path.join(root, file)
try:
with zipfile.ZipFile(zip_path, 'r') as zipped_file:
if zipped_file.testzip() is None: # 如果没有解压错误,则尝试解压
print(f"Found and extracting {zip_path}")
out_dir = os.path.join(root, os.path.splitext(file)[0]) # 创建解压后的目录名
os.makedirs(out_dir, exist_ok=True) # 确保目标目录存在
zipped_file.extractall(path=out_dir) # 解压到该目录
except zipfile.BadZipFile:
print(f"{zip_path} appears to be a corrupted or encrypted zip file.")
except Exception as e:
print(f"Error processing {zip_path}: {str(e)}")
# 调用函数并传入需要遍历的根目录
extract_if_zip('/path/to/your/directory')
```
注意,这个脚本仅检查文件名是否以`.zip` 结尾,并假设它是一个标准的未加密的ZIP文件。对于加密的ZIP文件,你需要先解密才能解压,这通常涉及到使用密码,而Python的`zipfile` 模块本身并不提供直接的加密文件支持。如果你知道加密的密码,可以使用`zipfile.PasswordZipFile` 类。
阅读全文