如何优化密码错误时的提示信息?
美国、香港服务器
如何优化密码错误时的提示信息?
05-08 来源:
优化密码错误时的提示信息可以从多个方面入手,例如让提示更加详细、友好,提供更多的操作引导等。下面分别针对单个文件解压和批量文件解压的场景,给出优化后的代码示例。
单个文件解压优化提示信息
python
import zipfile
def unzip_single_password_protected_file(zip_file_path, password, extract_path):
try:
with zipfile.ZipFile(zip_file_path, "r") as zip_ref:
zip_ref.setpassword(password.encode())
zip_ref.extractall(extract_path)
print(f"🎉 成功解压 {zip_file_path} 到 {extract_path}")
except FileNotFoundError:
print(f"😔 错误:未找到 {zip_file_path} 文件,请检查文件路径是否正确。")
except zipfile.BadZipFile:
print(f"😕 错误:{zip_file_path} 不是有效的 ZIP 文件,可能文件已损坏。")
except RuntimeError as e:
if "Bad password for file" in str(e):
print(f"❌ 你为 {zip_file_path} 输入的密码不正确。请再次确认密码,或者尝试联系文件提供者获取正确密码。")
else:
print(f"😵 发生未知错误:{e},请检查相关环境或联系技术支持人员。")
# 示例用法
zip_file = "example.zip"
password = "wrong_password"
extract_path = "extracted"
unzip_single_password_protected_file(zip_file, password, extract_path)
代码解释
成功提示:使用 🎉 表情符号让成功提示更友好,增强用户体验。
错误提示:针对不同的错误类型,使用表情符号和更详细的文字说明错误原因,并提供一些解决建议,如检查文件路径、联系文件提供者等。
批量文件解压优化提示信息
python
import os
import zipfile
import pathlib
def batch_unzip_password_protected_files(zip_dir, password, extract_dir):
zip_dir = pathlib.Path(zip_dir)
extract_dir = pathlib.Path(extract_dir)
extract_dir.mkdir(parents=True, exist_ok=True)
failed_files = []
for zip_file_path in zip_dir.rglob("*.zip"):
try:
with zipfile.ZipFile(zip_file_path, "r") as zip_ref:
zip_ref.setpassword(password.encode())
file_extract_dir = extract_dir / zip_file_path.stem
file_extract_dir.mkdir(parents=True, exist_ok=True)
zip_ref.extractall(file_extract_dir)
print(f"🎉 成功解压 {zip_file_path} 到 {file_extract_dir}")
except FileNotFoundError:
print(f"😔 错误:未找到 {zip_file_path} 文件,请检查文件路径是否正确。")
failed_files.append(zip_file_path)
except zipfile.BadZipFile:
print(f"😕 错误:{zip_file_path} 不是有效的 ZIP 文件,可能文件已损坏。")
failed_files.append(zip_file_path)
except RuntimeError as e:
if "Bad password for file" in str(e):
print(f"❌ 你为 {zip_file_path} 输入的密码不正确。请再次确认密码,或者尝试联系文件提供者获取正确密码。")
failed_files.append(zip_file_path)
else:
print(f"😵 发生未知错误:{e},请检查相关环境或联系技术支持人员。")
failed_files.append(zip_file_path)
if failed_files:
print("\n以下文件解压失败,请根据上述提示进行处理:")
for file in failed_files:
print(f" - {file}")
else:
print("\n所有文件均解压成功!
三二互联专业提供香港VPS,美国VPS主机,香港云服务器租用等业务香港美国到大陆CN2 GIA速度最快