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

如何用Python代码向其他Python文件插入指定名称?

解决方法

你的原代码存在几个问题:

  • if name == "John" 末尾缺少冒号 :
  • 打开文件用默认的只读模式,无法执行写入操作
  • 直接调用write会覆盖整个文件内容,而非修改目标行
  • 未处理原文件已有内容,无法实现追加名字的效果

要实现将输入的名字插入到example.py的names变量中,可以按以下方式实现:

基础实现代码

name = input("what's your name? ")

if name == "John":
    # 读取example.py的全部内容
    with open('example.py', 'r') as f:
        lines = f.readlines()
    
    # 遍历并修改目标行
    updated_lines = []
    target_line_prefix = "names = "
    for line in lines:
        if line.strip().startswith(target_line_prefix):
            # 提取原有名字内容
            original_name = line.strip().replace(target_line_prefix, "").strip('"')
            # 拼接新的行内容
            new_line = f'{target_line_prefix}"{original_name}", "{name}"\n'
            updated_lines.append(new_line)
        else:
            updated_lines.append(line)
    
    # 将修改后的内容写回文件
    with open('example.py', 'w') as f:
        f.writelines(updated_lines)

优化版(避免重复添加同名)

如果需要防止同一个名字被重复插入,可以调整处理逻辑:

name = input("what's your name? ")

if name == "John":
    with open('example.py', 'r') as f:
        lines = f.readlines()
    
    updated_lines = []
    target_line_prefix = "names = "
    for line in lines:
        if line.strip().startswith(target_line_prefix):
            # 解析现有名字列表
            existing_names = line.strip().replace(target_line_prefix, "").strip('"').split('", "')
            # 仅当名字不存在时才添加
            if name not in existing_names:
                existing_names.append(name)
                new_names_str = '", "'.join(existing_names)
                new_line = f'{target_line_prefix}"{new_names_str}"\n'
                updated_lines.append(new_line)
            else:
                updated_lines.append(line)
        else:
            updated_lines.append(line)
    
    with open('example.py', 'w') as f:
        f.writelines(updated_lines)

逻辑说明

  1. 先以只读模式读取文件所有行,保留原文件的其他内容
  2. 定位到以names = 开头的目标行,解析出已有的名字
  3. 按期望的格式拼接新的名字内容
  4. 以写入模式将修改后的所有行写回文件,确保原文件其他内容不受影响

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 05:05:24