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

如何将Script1输入的姓名自动添加至Script2指定行的names列表?

当然可以实现!这里有两种实用方案供你选择

方案一:用外部文件存储姓名(推荐,安全可靠)

因为两个脚本是独立运行的,直接共享内存变量行不通,用外部文件做中间存储是最稳妥的方式:

  1. 修改Script1,让它把输入的姓名追加到文本文件中:
name = input('Please enter your name:')
# 以追加模式打开存储文件,写入新姓名
with open('names_storage.txt', 'a', encoding='utf-8') as f:
    f.write(f"{name}\n")
print(f"✅ 姓名 {name} 已成功添加!")
  1. 替换Script2的第13行代码,让它从存储文件读取姓名并生成列表:
# 初始化列表,保留你原有的'None'项
names = ['None']
try:
    # 读取存储文件中的所有姓名
    with open('names_storage.txt', 'r', encoding='utf-8') as f:
        # 过滤空行并去除换行符
        stored_names = [line.strip() for line in f if line.strip()]
        names.extend(stored_names)
except FileNotFoundError:
    # 如果存储文件未创建(首次运行),使用你原来的默认姓名
    names.extend(['Name1', 'Name2', 'Name3'])

这样每次运行Script2时,都会自动加载Script1添加的所有姓名,完全不用手动修改代码~

方案二:直接修改Script2的代码(不推荐,有风险)

如果你一定要直接把姓名写入Script2的names列表,可以让Script1定位到第13行修改代码,但要注意:如果Script2的代码格式发生变化(比如空格、引号类型),这个方法会失效,甚至可能损坏脚本。

修改后的Script1代码:

name = input('Please enter your name:')
# 替换为你的Script2实际路径
script2_path = 'Script2.py'

# 读取Script2的所有代码行
with open(script2_path, 'r', encoding='utf-8') as f:
    lines = f.readlines()

# 注意:Python列表索引从0开始,第13行对应索引12
target_line_idx = 12
current_line = lines[target_line_idx].strip()

# 解析当前的names列表内容
list_content = current_line.split('=', 1)[1].strip()
# 拆分列表元素,去除引号和空格
elements = [elem.strip().strip("'") for elem in list_content.strip('[]').split(',')]
# 添加新姓名(保留单引号格式)
elements.append(f"'{name}'")
# 重新组合成新的代码行
new_line = f"names = [{', '.join(elements)}]\n"
# 替换原来的第13行
lines[target_line_idx] = new_line

# 将修改后的代码写回Script2
with open(script2_path, 'w', encoding='utf-8') as f:
    f.writelines(lines)

print(f"✅ 姓名 {name} 已成功写入Script2的names列表!")

优先推荐方案一,稳定性和可维护性都更强~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 10:29:17