fix: 修复出现.zip文件名问题,正式发布v0.0.1.

This commit is contained in:
xiatianxuan committed 2026-01-09 20:36:38 +08:00
1 parent 848a339512
commit 93ca51118c
3 files changed
+23 -17

No files matched your search

+7
View File
@@ -6,6 +6,13 @@ dist/
wheels/ wheels/
*.egg-info *.egg-info
.ruff_cache/ .ruff_cache/
*.build/
*.dist/
*.onefile-build/
*.tmp/
.vscode/
*.exe
sbackup.json
# Virtual environments # Virtual environments
.venv .venv
+4 -2
View File
@@ -4,7 +4,7 @@ import sys
VERSION = "0.0.1" VERSION = "0.0.1"
help_string = f""" help_string = f"""
version: {VERSION} version: {VERSION}
为你的文件保驾护航. 为你的文件夹保驾护航.
add 添加备份策略. add 添加备份策略.
rm, remove 删除备份策略. rm, remove 删除备份策略.
@@ -13,7 +13,9 @@ save 备份所有文件夹.
""" """
def run(): def run():
command: str = sys.argv[1] command: str = "help"
if len(sys.argv) > 1:
command = sys.argv[1]
if command == "add": if command == "add":
add_folder(input("备份文件夹:"), input("目标文件夹:"), input("需要忽略的文件夹或文件(用" "隔开):")) add_folder(input("备份文件夹:"), input("目标文件夹:"), input("需要忽略的文件夹或文件(用" "隔开):"))
elif command == "rm" or command == "remove": elif command == "rm" or command == "remove":
+12 -15
View File
@@ -31,27 +31,23 @@ def zip_folder(
:param skip_patterns: 跳过压缩的文件或文件夹 :param skip_patterns: 跳过压缩的文件或文件夹
:type skip_patterns: list :type skip_patterns: list
""" """
#print(folder_path)
#print(zipfile_path)
folder_path = os.path.abspath(folder_path) folder_path = os.path.abspath(folder_path)
if zipfile_path is None: if zipfile_path is None:
zipfile_path = os.path.join( zipfile_path = os.path.join(
os.path.dirname(folder_path), os.path.basename(folder_path) + ".zip" os.path.dirname(folder_path), os.path.basename(folder_path) + ".zip"
) )
if not zipfile_path.lower().endswith(".zip"): else:
#print(os.path.splitext(zipfile_path)[0]) zipfile_path = os.path.abspath(zipfile_path)
if not os.path.splitext(zipfile_path)[0]: # 如果 zipfile_path 是一个目录(包括盘符根目录如 "G:/"),则在其中创建 ZIP
zipfile_path = os.path.join( if os.path.isdir(zipfile_path):
os.path.dirname(folder_path), os.path.basename(folder_path) + ".zip" zipfile_path = os.path.join(zipfile_path, os.path.basename(folder_path) + ".zip")
) elif not zipfile_path.lower().endswith(".zip"):
else: zipfile_path += ".zip"
zipfile_path = os.path.splitext(zipfile_path)[0] + ".zip"
if not os.path.isdir(folder_path): if not os.path.isdir(folder_path):
#print(f"{folder_path} 不是一个有效的文件夹或不存在.") print(f"{folder_path} 不是一个有效的文件夹或不存在.")
return return
#print(folder_path)
#print(zipfile_path)
try: try:
with zipfile.ZipFile(zipfile_path, "w", zipfile.ZIP_DEFLATED) as zipf: with zipfile.ZipFile(zipfile_path, "w", zipfile.ZIP_DEFLATED) as zipf:
for root, dirs, files in os.walk(folder_path): for root, dirs, files in os.walk(folder_path):
@@ -62,9 +58,10 @@ def zip_folder(
file_path = os.path.join(root, file) file_path = os.path.join(root, file)
arcname = os.path.relpath(file_path, os.path.dirname(folder_path)) arcname = os.path.relpath(file_path, os.path.dirname(folder_path))
zipf.write(file_path, arcname) zipf.write(file_path, arcname)
print(f"成功备份: {zipfile_path}")
except PermissionError: except PermissionError:
print(f"权限不足:无法写入 '{zipfile_path}'") print(f"权限不足:无法写入 '{zipfile_path}'")
except OSError as e: except OSError as e:
print(f"系统错误:{e}") print(f"系统错误:{e}")
except Exception as e: except Exception as e:
print(f"未知错误:{e}") print(f"未知错误:{e}")