我有一个脚本(让它称之为脚本1),在运行时,请求输入一个名称(一次只能输入一个名称,所以你必须再次运行脚本才能添加另一个名字)
name = input('\n Please enter your name:')
在另一个脚本中(让我们称之为脚本2),我必须按顺序手动输入这些名称
names = ['None', 'Name1', 'Name2', 'Name3']
这是脚本2中的第13行第54行
是否可以自动将脚本1中输入的名称(在运行脚本1之后)添加到脚本2第13行的名称列表中? 例如,假设我运行脚本1,当它提示我输入名称时,我输入名称John。如何让脚本自动添加" ,'约翰' " (没有"")到脚本2中的名单?
答案 0 :(得分:0)
如果您确实想要编辑script2的源代码,那么可以通过普通的字符串方法或正则表达式来执行此操作,或者更好地,对文件进行标记或解析。但实际上,你几乎肯定不想这样做。
如果您希望在程序运行期间使用某种持久存储,则可能需要单独的文件。对于花哨的情况,您可能希望使用dbm
或sqlite3
这样的数据库,但在这里,您只有一个名称列表,因此您可以将它们存储在一个简单的文本文件中。
有两个棘手的位,但两者都很简单:
script1
,则还没有文件。所以你会想要处理这种情况。'\n'
),然后在另一端将其删除。script1.py:
name = input('\n Please enter your name:')
with open('names.txt', 'w') as f:
f.write(name + '\n')
script2.py:
try:
with open('names.txt') as f:
names = [line.rstrip() for line in f]
except FileNotFoundError:
names = []
如果您希望在调用script1之前有一个名称的“起始列表”,那么您需要添加names = ['Name1', 'Name2'] line about the
个, and the change the
个名称= [...] to
名称.extend(...)`。但听起来你不想这样,所以我从一个空列表开始 - 只有你添加到文本文件中的名称。
还有一件事:在当前工作目录中查找names.txt
。因此,如果您从其他目录运行脚本,它将找不到该文件。如果你想在特定的位置找到它,比如/Users/Pergamon256/.config/my-app/names.txt
,这很容易。如果你想“我操作系统的正常位置”,那就有点棘手了; PyPI上有一些库可以帮到你。如果你想要脚本所在的目录,那么SO上有很好的答案显示如何做到这一点。