假设我有一个名为script1.py
的Python脚本,其代码如下:
import sys
name = sys.argv[1]
print("Bye", name)
第二个Python脚本script2.py
调用第一个脚本:
import sys
name = sys.argv[1]
print("Hello", name)
import script1
如何将第二个脚本中的参数传递给第一个脚本,如给定的示例中所示?
当我从终端运行脚本时,我希望输出看起来像这样:
>> python script2.py Bob
Hello Bob
Bye Bob
答案 0 :(得分:2)
您执行此操作的方式有两种选择(尽管您的示例现在确实可以正常工作,因为sys.argv
对于两个脚本都相同但在您想要的通用情况下不会传递泛型参数。)
使用os.system
import os
os.system('python script1.py {}'.format(name))
使用subprocess
import subprocess
subprocess.Popen(['python', 'script1.py', name])
更好的方法,IMO,将脚本1的逻辑变成函数
# script1.py
import sys
def bye(name):
print("Bye", name)
if __name__ == '__main__': # will only run when script1.py is run directly
bye(sys.argv[1])
然后在script2.py中执行
# script2.py
import sys
import script1
name = sys.argv[1]
print("Hello", name)
script1.bye(name)