RELATEED CONSULTING
相关咨询
欢迎选择下列在线客服咨询
微信客服
微信客服二维码
热线电话:13863516421
7x24小时,全年无休
我们服务器的承诺:
关闭右侧工具栏

境外国外服务器专题

怎样在密码错误提示信息中加入更多的用户身份信息?

  • 来源:本站
  • 编辑: 超级管理员
  • 时间: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 和角色信息融入到每个文件解压结果的提示信息中,包括成功提示、各种错误提示以及最终的失败文件汇总提示和成功总结提示。

错误文件处理:在处理解压失败的文件时,同样在汇总提示里加入用户身份信息,让用户明确是自己的操作出现了问题。


我们提供7X24小时售后服务,了解更多机房产品和服务,敬请联系
购买咨询 售后服务