mirror of
https://github.com/CodeSeeed/sbackup.git
synced 2026-10-02 18:32:58 +08:00
fix: 修复出现.zip文件名问题,正式发布v0.0.1.
This commit is contained in:
1 parent
848a339512
commit
93ca51118c
3 files changed
+22
-16
No files matched your search
@@ -6,6 +6,13 @@ dist/
|
||||
wheels/
|
||||
*.egg-info
|
||||
.ruff_cache/
|
||||
*.build/
|
||||
*.dist/
|
||||
*.onefile-build/
|
||||
*.tmp/
|
||||
.vscode/
|
||||
*.exe
|
||||
sbackup.json
|
||||
|
||||
# Virtual environments
|
||||
.venv
|
||||
+4
-2
@@ -4,7 +4,7 @@ import sys
|
||||
VERSION = "0.0.1"
|
||||
help_string = f"""
|
||||
version: {VERSION}
|
||||
为你的文件保驾护航.
|
||||
为你的文件夹保驾护航.
|
||||
|
||||
add 添加备份策略.
|
||||
rm, remove 删除备份策略.
|
||||
@@ -13,7 +13,9 @@ save 备份所有文件夹.
|
||||
"""
|
||||
|
||||
def run():
|
||||
command: str = sys.argv[1]
|
||||
command: str = "help"
|
||||
if len(sys.argv) > 1:
|
||||
command = sys.argv[1]
|
||||
if command == "add":
|
||||
add_folder(input("备份文件夹:"), input("目标文件夹:"), input("需要忽略的文件夹或文件(用" "隔开):"))
|
||||
elif command == "rm" or command == "remove":
|
||||
|
||||
+11
-14
@@ -31,27 +31,23 @@ def zip_folder(
|
||||
:param skip_patterns: 跳过压缩的文件或文件夹
|
||||
:type skip_patterns: list
|
||||
"""
|
||||
#print(folder_path)
|
||||
#print(zipfile_path)
|
||||
folder_path = os.path.abspath(folder_path)
|
||||
if zipfile_path is None:
|
||||
|
||||
if zipfile_path is None:
|
||||
zipfile_path = os.path.join(
|
||||
os.path.dirname(folder_path), os.path.basename(folder_path) + ".zip"
|
||||
)
|
||||
if not zipfile_path.lower().endswith(".zip"):
|
||||
#print(os.path.splitext(zipfile_path)[0])
|
||||
if not os.path.splitext(zipfile_path)[0]:
|
||||
zipfile_path = os.path.join(
|
||||
os.path.dirname(folder_path), os.path.basename(folder_path) + ".zip"
|
||||
)
|
||||
else:
|
||||
zipfile_path = os.path.splitext(zipfile_path)[0] + ".zip"
|
||||
else:
|
||||
zipfile_path = os.path.abspath(zipfile_path)
|
||||
# 如果 zipfile_path 是一个目录(包括盘符根目录如 "G:/"),则在其中创建 ZIP
|
||||
if os.path.isdir(zipfile_path):
|
||||
zipfile_path = os.path.join(zipfile_path, os.path.basename(folder_path) + ".zip")
|
||||
elif not zipfile_path.lower().endswith(".zip"):
|
||||
zipfile_path += ".zip"
|
||||
|
||||
if not os.path.isdir(folder_path):
|
||||
#print(f"{folder_path} 不是一个有效的文件夹或不存在.")
|
||||
print(f"{folder_path} 不是一个有效的文件夹或不存在.")
|
||||
return
|
||||
#print(folder_path)
|
||||
#print(zipfile_path)
|
||||
try:
|
||||
with zipfile.ZipFile(zipfile_path, "w", zipfile.ZIP_DEFLATED) as zipf:
|
||||
for root, dirs, files in os.walk(folder_path):
|
||||
@@ -62,6 +58,7 @@ def zip_folder(
|
||||
file_path = os.path.join(root, file)
|
||||
arcname = os.path.relpath(file_path, os.path.dirname(folder_path))
|
||||
zipf.write(file_path, arcname)
|
||||
print(f"成功备份: {zipfile_path}")
|
||||
except PermissionError:
|
||||
print(f"权限不足:无法写入 '{zipfile_path}'")
|
||||
except OSError as e:
|
||||
|
||||
Reference in new issue
Block a user