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

如何让Python项目的.env文件保存修改后的账号密码配置?

账号密码校验功能.env持久化改造实现

前置依赖

首先安装.env文件处理依赖:
pip install python-dotenv

修改后完整代码

import os
from dotenv import load_dotenv

# 加载本地.env文件中的配置
load_dotenv()

def save_env_config(key: str, value: str) -> None:
    """将配置更新同步写入.env文件实现持久化存储"""
    env_lines = []
    # 读取现有配置内容
    if os.path.exists('.env'):
        with open('.env', 'r', encoding='utf-8') as f:
            env_lines = f.readlines()
    
    # 匹配需要更新的配置项
    key_exist = False
    for index, line in enumerate(env_lines):
        strip_line = line.strip()
        # 跳过注释和空行
        if not strip_line or strip_line.startswith('#'):
            continue
        if strip_line.split('=')[0].strip() == key:
            env_lines[index] = f'{key}={value}\n'
            key_exist = True
            break
    # 配置项不存在则追加
    if not key_exist:
        env_lines.append(f'{key}={value}\n')
    
    # 写回配置文件
    with open('.env', 'w', encoding='utf-8') as f:
        f.writelines(env_lines)

# 初始化默认账号密码,配置缺失时自动生成
if not os.getenv('USER'):
    save_env_config('USER', 'admin')
    os.environ['USER'] = 'admin'
if not os.getenv('PASSWORD'):
    save_env_config('PASSWORD', 'admin')
    os.environ['PASSWORD'] = 'admin'

print('请登录,默认账号密码均为admin')
print('用户名:')
inputed_username = input()

logged_username = os.getenv('USER')

if inputed_username == logged_username:
    logged_password = os.environ.get('PASSWORD')
    print('密码:')
    inputed_password = input()
    if inputed_password == logged_password:
        print(f'欢迎 {inputed_username}!')
        while True:
            print('请选择操作:')
            print('''
            1: 修改用户名
            2: 修改密码
            3: 退出登录
            ''')
            ch1 = input().strip()
            if ch1 == '1':
                print('请输入新用户名:')
                new_username = input().strip()
                os.environ['USER'] = new_username
                save_env_config('USER', new_username)
                print('用户名修改成功')
            if ch1 == '2':
                print('请输入新密码:')
                new_password = input().strip()
                os.environ['PASSWORD'] = new_password
                save_env_config('PASSWORD', new_password)
                print('密码修改成功')
            if ch1 == "3":
                break
    else:
        print('密码错误')
else:
    print('用户名错误')

具体改动点

  • 引入python-dotenv库处理.env配置文件,替换原代码硬编码写入环境变量的逻辑,程序启动时优先读取本地配置文件的账号密码
  • 新增save_env_config持久化写入函数,修改用户名或密码时会同步更新.env文件内容,解决原代码修改仅在当前进程生效、程序重启后恢复默认配置的问题
  • 新增配置初始化逻辑:.env文件不存在或缺少对应配置项时,自动写入默认的admin账号密码,无需手动创建配置文件
  • 优化交互提示为中文,补充修改成功的反馈提示,交互逻辑更清晰

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 23:57:03