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
+23
-17
No files matched your search
@@ -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
@@ -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
@@ -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}")
|
||||||
Reference in new issue
Block a user