在不同的命令行界面(CLI)中打开python程序?

时间:2012-01-09 12:45:57

标签: python command-line cross-platform

我需要一个python脚本,打开另一个CLI并在那里运行它。 E.g。

python C:\Python27\Scripts\script.py test
python /path/to/script_folder/script.py test

我需要支持Unix和Windows。

有什么建议吗?

3 个答案:

答案 0 :(得分:2)

如果您正在寻找在脚本中运行交互式控制台,那么我会使用以下内容:

import code
console = code.InteractiveConsole()
console.interact()

您可以在code module documentation中找到更多信息。特别是,您可能对runcoderunsource方法感兴趣。

如果您正在寻找运行脚本并在python shell中执行脚本后继续,那么我将使用以下内容:

$ python -i <path_to_script>

答案 1 :(得分:0)

如果我理解你的问题,你想:

  1. 启动python脚本
  2. 此脚本本身应启动新的终端窗口
  3. 在这个新终端中,应该运行另一个python脚本
  4. 根据点3是否必须使终端窗口保持打开状态,解决方案可能会有很大不同。

    如果您不需要打开窗口,只需转到os.systemsubprocess。如果你只运行一个python脚本,你可能只是将“python”指定为可执行文件,因此是跨平台的。

    如果您确实需要打开窗口,则必须启动特定于操作系统的特定shell +终端(Windows中为cmd.exe;在unix世界中为/ bin / sh,/ bin / bash或其他任何东西,可能包裹在xterm)。

    但说实话,除非有一些非常具体的要求让一个完全不同的终端会话打开,你应该做的只是导入第二个模块并从第一个模块运行它,或者在内存中读取它然后使用{{ 1}}。

答案 2 :(得分:0)

经过深思熟虑,阅读这个问题和其他人,我找到了解决方案,让我的“男人是我笨蛋”的时刻,最后,这将有所作为:

command = r'start cmd.exe python "' + <script> + r'" [args]'
os.system(command)

关键字是“开始”。它的魔力基本上告诉Windows,要执行的文件与实际调用者无关,而且中提琴,你有一个新的控制台。

我不确定Unix,但我认为它类似,不知何故使用gnome-terminal。