-
Notifications
You must be signed in to change notification settings - Fork 58
Expand file tree
/
Copy pathdata_package.py
More file actions
53 lines (44 loc) · 1.64 KB
/
Copy pathdata_package.py
File metadata and controls
53 lines (44 loc) · 1.64 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
from pathlib import Path
import zipfile
import re
from datetime import datetime
import shutil
def create_zip_package(output_zip_path):
# 定义文件和文件夹路径
data_folder = Path("data")
# 获取所有符合日期格式的目录
date_pattern = re.compile(r"^\d{4}_\d{2}_\d{2}__\d{2}_\d{2}_\d{2}$")
time_folders = [
folder
for folder in data_folder.iterdir()
if folder.is_dir() and date_pattern.match(folder.name)
]
if not time_folders:
print("未找到输出目录!")
return
# 创建压缩包
with zipfile.ZipFile(output_zip_path, "w", zipfile.ZIP_DEFLATED) as zipf:
# 添加所有符合日期格式的目录及其内容
for folder in time_folders:
for file_path in folder.rglob("*"):
if file_path.is_file():
# 在压缩包中保留相对目录结构
arcname = file_path.relative_to(data_folder)
zipf.write(file_path, arcname=str(arcname))
# 打包完成后删除原文件夹
for folder in time_folders:
try:
shutil.rmtree(folder)
print(f"已删除文件夹:{folder}")
except Exception as e:
print(f"删除文件夹 {folder} 时出错:{e}")
print(f"压缩包已创建:{output_zip_path}")
def package_data():
# 使用当前时间生成输出文件名
current_time = datetime.now().strftime("%Y%m%d_%H%M%S")
output_zip = f"arknights_package_{current_time}.zip"
# 调用函数创建压缩包
create_zip_package(output_zip)
return output_zip
if __name__ == "__main__":
package_data()