我想在for循环中插入一个python脚本(仅打印输出)。问题:代替将“ i”作为变量-它仅显示“ i”,而不是“ string1”,“ string2”。 我尝试过:
for i in ['string1, string2']:
os.system("python scriptWhichPrintsInput.py i")
...
i
答案 0 :(得分:3)
您应该使用格式或字符串串联:
os.system("python scriptWhichPrintsInput.py " + i)
或者:
os.system("python scriptWhichPrintsInput.py {}".format(i))
答案 1 :(得分:2)
不太确定为什么要用这种方法,但是可以了。
首先,您需要在运行时动态解析参数(不仅仅是字符串中的char'i'!)因此,
for i in ['string1', 'string2']:
os.system("python scriptWhichPrintsInput.py {}".format(i))
...
i
然后,我假设您的其他python脚本是某个函数foo()
,它需要一个输入i
,例如;
foo(i, *args, **kwargs):
# insert your script function here...
pass
这可能就是我要做的。
我将使脚本可导入(称为os
),而不是解析具有scriptWhichPrintsInput.py
依赖项的脚本的字符串表示形式,然后确保它位于我的Python路径上(更多信息{ {3}})。例如
# your scriptWhichPrintsInput.py file
foo(i, *args, **kwargs):
# do something with your input...
print(i)
return
然后在您的其他脚本中(如上所述)
# your scriptWhichPrintsInput.py file
from .scriptWhichPrintsInput import foo if your script is in the same folder, easy!
for i in ['string1', 'string2']:
foo(i)
...
i # do whatever you need to do here!