我正在尝试在另一个python程序中运行python程序。 这两个程序在一个线程中运行。 现在,我不知道为什么,但是当我在我的电脑上尝试这两行时,它打开程序并运行它,但是在我的笔记本电脑上,它只是打开一个奇怪的窗口,只有代码本身并且不运行代码。
import os
os.system("theName.py")
有什么想法吗?
答案 0 :(得分:1)
在.py
文件上使用os.system
与在命令行直接执行文件完全相同。根据您的平台和设置,以及文件是否设置了exec位,以及是否以适当的shebang行开头,可以执行以下任何操作:
.py
个文件设置的默认编辑器中打开脚本。你可能正在使用笔记本电脑上的第二个 - 但它们中的任何一个都是可能的,其中只有一个是你真正想要的。
正如os.system
的文档所说,您几乎总是希望使用subprocess
模块而不是os.system
。在这种情况下,你可能想要的是:
subprocess.run([sys.executable, 'script.py'], check=True)
这意味着要运行script.py
using the same Python interpreter being used to run the current script,让输入和输出通过(就像system
那样),并检查并引发异常,如果它以异常或其他故障退出而不是忽略错误。这可能不是你想要的;在这种情况下,请阅读subprocess
文档(包括the recipes for replacing older functions),了解如何做您想做的事情。
答案 1 :(得分:0)
您正在执行系统命令,该命令取决于操作系统的配置。很有可能在笔记本电脑上,当您双击python文件时,它就会被编辑。
你应该至少告诉它以文件作为参数打开python
程序。例如:
os.system("<python path>/python.exe theName.py")