使用参数从另一个 python 脚本调用 python 脚本不起作用
Calling a python script from another python script with arguments does not work
我很清楚有多个线程在处理这个问题,因为我使用它们来尝试自学如何去做。但是,对我来说它不起作用,我想知道是否有人可以帮我找到我的错误。
所以我得到了一个程序(我们称之为 prog1),它为每个字符串变量调用一个脚本,如下所示:
os.system(r'C:\Users\user\docs\bla\script.py %s'%variable)
在 script.py 中,我现在只想通过禁用所有代码来测试此调用是否有效,但只需执行以下操作:
def main(string):
print(string)
root
if __name__ == "__main__":
print('I got executed')
main(sys.argv[1])
问题是,如果我执行 prog1,什么也没有发生。没有错误 - 所以它运行通过并且控制台弹出一秒钟。然而,什么也没有发生——没有字符串被打印出来。如果我直接执行 script.py 它会起作用。
编辑:我使用 subprocess 包执行它时没有错误:
subprocess.call(r'C:\...\script.py' %s' %variable,shell = True)
但是,问题仍然存在 - 没有任何反应。或者好吧,我现在注意到在后台弹出一个 Windows window 询问我想用哪个程序执行结尾为 '.py' 的文件,但这对我没有帮助,因为我想要在控制台中执行:(
尝试使用 subprocess
模块,它允许更灵活的参数和其他配置更改:
import subprocess
subprocess.check_call(["python.exe", r"C:\Users\user\docs\bla\script.py", variable])
执行时:
subprocess.check_call(["python", r"C:\Users\user\docs\bla\script.py", "Blue"])
I got executed
Blue
有关子流程的更多信息:https://docs.python.org/2/library/subprocess.html
我很清楚有多个线程在处理这个问题,因为我使用它们来尝试自学如何去做。但是,对我来说它不起作用,我想知道是否有人可以帮我找到我的错误。
所以我得到了一个程序(我们称之为 prog1),它为每个字符串变量调用一个脚本,如下所示:
os.system(r'C:\Users\user\docs\bla\script.py %s'%variable)
在 script.py 中,我现在只想通过禁用所有代码来测试此调用是否有效,但只需执行以下操作:
def main(string):
print(string)
root
if __name__ == "__main__":
print('I got executed')
main(sys.argv[1])
问题是,如果我执行 prog1,什么也没有发生。没有错误 - 所以它运行通过并且控制台弹出一秒钟。然而,什么也没有发生——没有字符串被打印出来。如果我直接执行 script.py 它会起作用。
编辑:我使用 subprocess 包执行它时没有错误:
subprocess.call(r'C:\...\script.py' %s' %variable,shell = True)
但是,问题仍然存在 - 没有任何反应。或者好吧,我现在注意到在后台弹出一个 Windows window 询问我想用哪个程序执行结尾为 '.py' 的文件,但这对我没有帮助,因为我想要在控制台中执行:(
尝试使用 subprocess
模块,它允许更灵活的参数和其他配置更改:
import subprocess
subprocess.check_call(["python.exe", r"C:\Users\user\docs\bla\script.py", variable])
执行时:
subprocess.check_call(["python", r"C:\Users\user\docs\bla\script.py", "Blue"])
I got executed
Blue
有关子流程的更多信息:https://docs.python.org/2/library/subprocess.html