os.system只打开代码

时间:2018-04-02 16:52:31

标签: python operating-system

我正在尝试在另一个python程序中运行python程序。 这两个程序在一个线程中运行。 现在,我不知道为什么,但是当我在我的电脑上尝试这两行时,它打开程序并运行它,但是在我的笔记本电脑上,它只是打开一个奇怪的窗口,只有代码本身并且不运行代码。

import os
os.system("theName.py")

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

.py文件上使用os.system与在命令行直接执行文件完全相同。根据您的平台和设置,以及文件是否设置了exec位,以及是否以适当的shebang行开头,可以执行以下任何操作:

  • 运行脚本。
  • 在为.py个文件设置的默认编辑器中打开脚本。
  • 尝试使用错误的Python版本运行脚本。
  • 尝试运行您的脚本,就像它是shell代码而不是Python代码一样,除非您非常不走运,否则会因语法错误而失败。
  • 因错误而不知道如何执行此类文件而失败。
  • 因文件无法执行而出错。

你可能正在使用笔记本电脑上的第二个 - 但它们中的任何一个都是可能的,其中只有一个是你真正想要的。

正如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")
相关问题