基于python3.7 使用zipfile 解压目录 保持解压后的目录和文件的修改日期不变
时间: 2024-09-26 11:16:23 浏览: 33
Python实现多级目录压缩与解压文件的方法
在Python 3.7中,你可以使用`zipfile`模块的`ZipFile`类来解压缩.zip或.zipx文件,并通过`extractall()`函数将内容提取到指定的目录。然而,`zipfile`本身并不直接保留原始文件的元数据,包括修改日期。为了保持文件的修改日期,你需要在解压前先读取原ZIP文件中的元数据信息。
下面是一个示例,演示如何使用`os`和`zipfile`同时处理这个需求:
```python
import os
import zipfile
# 假设你有一个名为archive.zip的ZIP文件
with zipfile.ZipFile('archive.zip', 'r') as zip_ref:
# 获取ZIP文件的信息,包括文件名和其内部的日期时间
info = zip_ref.getinfo('path/to/file')
original_mtime = info.date_time
# 将ZIP文件解压到目标目录
extract_dir = 'target_directory'
zip_ref.extractall(extract_dir)
# 如果你想保持特定文件的原始修改日期,可以使用os.utime()函数
# 需要注意的是,文件路径需要与ZIP内的相对路径匹配
extracted_file_path = os.path.join(extract_dir, info.filename)
if os.path.exists(extracted_file_path):
os.utime(extracted_file_path, (original_mtime[0], original_mtime[1]))
阅读全文