使用Python脚本

时间:2018-03-07 17:31:54

标签: python

假设我有一个名为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

1 个答案:

答案 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)