You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何根据用户输入关键词,实现密码管理器的分平台文件写入?

解决方案

核心思路

  • 解析输入提取平台名:将用户输入按空格拆分,匹配指令格式后提取最后一段作为平台名称,实现对任意平台的识别
  • 封装密码生成逻辑:把密码生成代码抽成独立函数,提升复用性和可读性
  • 通用文件写入:用平台名动态拼接文件名,结合with语句安全完成文件写入

修改后的完整代码

import secrets
import string

def generate_secure_password(length=12):
    letters = string.ascii_letters
    digits = string.digits
    spec_chars = string.punctuation
    alphabet = letters + digits + spec_chars
    
    while True:
        password = ''.join(secrets.choice(alphabet) for _ in range(length))
        # 验证密码复杂度:至少1个特殊字符+至少2个数字
        has_spec_char = any(char in spec_chars for char in password)
        has_enough_digits = sum(char in digits for char in password) >= 2
        if has_spec_char and has_enough_digits:
            return password

# 处理用户指令
user_input = input("请输入指令(格式:get new pwd [平台名]):")
input_parts = user_input.strip().split()

# 验证指令格式并执行操作
if len(input_parts) == 4 and input_parts[:3] == ['get', 'new', 'pwd']:
    platform = input_parts[3]
    secure_pwd = generate_secure_password()
    
    # 写入对应平台的txt文件
    filename = f"{platform}.txt"
    with open(filename, 'w') as file:
        file.write(secure_pwd)
    
    print(f"已为平台 {platform} 生成并保存密码:{secure_pwd}")
else:
    print("指令格式错误,请使用:get new pwd [平台名]")

关键部分说明

  1. 输入解析:通过split()拆分输入字符串,判断前三个元素是否匹配固定指令前缀,直接提取第四个元素作为平台名,不管用户输入steam、github还是其他平台都能适配
  2. 密码生成函数:把原有的生成逻辑封装成函数,返回符合复杂度要求的密码,避免重复代码,后续还能方便调整密码长度或复杂度规则
  3. 文件操作优化:用with open()语句自动管理文件资源,不需要手动调用close();用f-string动态生成文件名,确保每个平台对应独立的.txt文件
  4. 格式校验:加入指令格式判断,避免用户输入错误指令导致程序异常

内容的提问来源于stack exchange,提问作者esp

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 14:32:35