
怎样在密码错误提示信息中加入更多的用户身份信息?
- 来源:本站
- 编辑: 超级管理员
- 时间:2025-05-09 10:07:40
- 阅读6次
为了在密码错误提示信息中加入更多的用户身份信息,你可以从多方面收集和利用用户身份信息,如用户名、用户 ID、用户角色等,然后将这些信息融入到提示信息里。以下是分别针对单个文件解压和批量文件解压场景的示例代码:
单个文件解压场景
python
import zipfile
def unzip_single_password_protected_file(zip_file_path, password, extract_path, user_info):
try:
with zipfile.ZipFile(zip_file_path, 'r') as zip_ref:
zip_ref.setpassword(password.encode())
zip_ref.extractall(extract_path)
print(f"🎉 {user_info['name']}(用户 ID:{user_info['id']},角色:{user_info['role']}),成功解压 {zip_file_path} 到 {extract_path}")
except FileNotFoundError:
print(f"😔 {user_info['name']}(用户 ID:{user_info['id']},角色:{user_info['role']}),未找到 {zip_file_path} 文件,请检查文件路径是否正确。")
except zipfile.BadZipFile:
print(f"😕 {user_info['name']}(用户 ID:{user_info['id']},角色:{user_info['role']}),{zip_file_path} 不是有效的 ZIP 文件,可能文件已损坏。")
except RuntimeError as e:
if 'Bad password for file' in str(e):
print(f"❌ {user_info['name']}(用户 ID:{user_info['id']},角色:{user_info['role']}),你为 {zip_file_path} 输入的密码不正确。请再次确认密码,或者尝试联系文件提供者获取正确密码。")
else:
print(f"😵 {user_info['name']}(用户 ID:{user_info['id']},角色:{user_info['role']}),发生未知错误:{e},请检查相关环境或联系技术支持人员。")
# 示例用法
zip_file = 'example.zip'
password = 'wrong_password'
extract_path = 'extracted'
user_info = {
'name': 'Alice',
'id': '12345',
'role': '普通用户'
}
unzip_single_password_protected_file(zip_file, password, extract_path, user_info)
代码解释
用户信息字典:定义了一个包含用户姓名、用户 ID 和用户角色的字典 user_info,方便传递和使用用户身份信息。
提示信息定制:在每个提示信息中,都将用户的姓名、ID 和角色信息加入,使提示更加具体和个性化。
批量文件解压场景
python
import os
import zipfile
import pathlib
def batch_unzip_password_protected_files(zip_dir, password, extract_dir, user_info):
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"🎉 {user_info['name']}(用户 ID:{user_info['id']},角色:{user_info['role']}),成功解压 {zip_file_path} 到 {file_extract_dir}")
except FileNotFoundError:
print(f"😔 {user_info['name']}(用户 ID:{user_info['id']},角色:{user_info['role']}),未找到 {zip_file_path} 文件,请检查文件路径是否正确。")
failed_files.append(zip_file_path)
except zipfile.BadZipFile:
print(f"😕 {user_info['name']}(用户 ID:{user_info['id']},角色:{user_info['role']}),{zip_file_path} 不是有效的 ZIP 文件,可能文件已损坏。")
failed_files.append(zip_file_path)
except RuntimeError as e:
if 'Bad password for file' in str(e):
print(f"❌ {user_info['name']}(用户 ID:{user_info['id']},角色:{user_info['role']}),你为 {zip_file_path} 输入的密码不正确。请再次确认密码,或者尝试联系文件提供者获取正确密码。")
failed_files.append(zip_file_path)
else:
print(f"😵 {user_info['name']}(用户 ID:{user_info['id']},角色:{user_info['role']}),发生未知错误:{e},请检查相关环境或联系技术支持人员。")
failed_files.append(zip_file_path)
if failed_files:
print(f"\n{user_info['name']}(用户 ID:{user_info['id']},角色:{user_info['role']}),以下文件解压失败,请根据上述提示进行处理:")
for file in failed_files:
print(f" - {file}")
else:
print(f"\n{user_info['name']}(用户 ID:{user_info['id']},角色:{user_info['role']}),所有文件均解压成功!👏")
# 示例用法
zip_directory = 'your_zip_folder'
password = 'wrong_password'
extract_directory = 'extracted_all'
user_info = {
'name': 'Bob',
'id': '67890',
'role': '管理员'
}
batch_unzip_password_protected_files(zip_directory, password, extract_directory, user_info)
代码解释
用户信息贯穿:在批量解压过程中,将用户的姓名、ID 和角色信息融入到每个文件解压结果的提示信息中,包括成功提示、各种错误提示以及最终的失败文件汇总提示和成功总结提示。
错误文件处理:在处理解压失败的文件时,同样在汇总提示里加入用户身份信息,让用户明确是自己的操作出现了问题。
- 配置GNOME 46全局搜索时遇到问题···
2025-05-19
- 如何在Ubuntu 24系统上配置GNOME···
2025-05-19
- ubuntu24系统的优势?
2025-05-19
- 如何验证生成的新密钥对是否有效···
2025-05-17
- 如何在GnuPG中添加新的密钥?
2025-05-17
- 如何解决GnuPG配置文件中的错误?···
2025-05-17
- 面向未来的高可用境外服务器架构···
2024-08-26
- 跨境电商成功案例之优秀外国服务···
2024-08-22
- 从成本效益角度分析境外服务器的···
2024-08-17
- 如何规避使用外国服务器的风险问···
2024-08-16
- 搭建安全稳定的境外网站:首选外···
2024-08-19
- 针对中小企业的境外服务器配置指···
2024-08-22