Python 获取windows下指定目录的修改时间,如果修改时间是在7天前,压缩目录并删除源文件
时间: 2024-04-13 09:30:33 浏览: 82
要获取Windows下指定目录的修改时间,并在修改时间超过7天时压缩目录并删除源文件,你可以使用`os.path`和`shutil`模块来实现。
下面是一个示例代码:
```python
import os
import shutil
import datetime
import zipfile
def compress_and_delete(directory):
# 获取目录的修改时间
modified_time = os.path.getmtime(directory)
# 将修改时间转换为datetime对象
modified_datetime = datetime.datetime.fromtimestamp(modified_time)
# 获取当前时间
current_datetime = datetime.datetime.now()
# 计算时间差
time_diff = current_datetime - modified_datetime
# 判断修改时间是否超过7天
if time_diff.days > 7:
# 压缩目录
zip_filename = directory + '.zip'
with zipfile.ZipFile(zip_filename, 'w') as zipf:
for root, dirs, files in os.walk(directory):
for file in files:
file_path = os.path.join(root, file)
zipf.write(file_path, arcname=os.path.relpath(file_path, directory))
# 删除源文件
shutil.rmtree(directory)
print(f"目录 {directory} 超过7天未修改,已压缩并删除源文件")
else:
print(f"目录 {directory} 修改时间未超过7天")
# 示例目录
directory_path = 'C:/path/to/directory'
compress_and_delete(directory_path)
```
在上述代码中,我们定义了一个`compress_and_delete`函数来执行压缩和删除操作。该函数会首先获取目录的修改时间,并将其转换为`datetime`对象。然后,计算当前时间和修改时间之间的时间差。
如果时间差超过7天,我们使用`zipfile`模块将目录压缩为一个zip文件,并使用`shutil.rmtree`函数删除源文件。
你需要将`directory_path`变量替换为你要操作的目录路径。
希望对你有帮助!如果有任何问题,请随时提问。
阅读全文