Python打开默认终端,执行命令,保持打开状态,然后允许用户输入

Python打开默认终端,执行命令,保持打开状态,然后允许用户输入,python,command-line,terminal,Python,Command Line,Terminal,我想从一个Python脚本(不是一个标记为可执行的脚本)打开一个终端,而是实际执行python3 myscript.py来运行它,让终端运行命令,然后保持终端打开,让用户在其中键入命令 按建议编辑:我主要需要Linux版的这个,我使用的是Xubuntu、Ubuntu之类的东西。了解Windows7/8和Mac方法也很好,因为从长远来看,我想要一个跨平台的解决方案。不过,任何系统的输入都将不胜感激 为了让人们知道一些与此相关的有用信息,这里有一些代码,如果不进行一些研究,可能很难编写出来。这不允许

我想从一个Python脚本(不是一个标记为可执行的脚本)打开一个终端,而是实际执行python3 myscript.py来运行它,让终端运行命令,然后保持终端打开,让用户在其中键入命令

按建议编辑:我主要需要Linux版的这个,我使用的是Xubuntu、Ubuntu之类的东西。了解Windows7/8和Mac方法也很好,因为从长远来看,我想要一个跨平台的解决方案。不过,任何系统的输入都将不胜感激

为了让人们知道一些与此相关的有用信息,这里有一些代码,如果不进行一些研究,可能很难编写出来。这不允许用户输入,但可以保持窗口打开。该代码专门针对Linux:

import subprocess, shlex;
myFilePathString="/home/asdf asdf/file.py";
params=shlex.split('x-terminal-emulator -e bash -c "python3 \''+myFilePathString+'\'; echo \'(Press any key to exit the terminal emulator.)\'; read -n 1 -s"');
subprocess.call(params);
要在随后运行Python解释器的情况下打开它(这与我想要的一样好,如果没有更好的话),请尝试以下操作:

import subprocess, shlex;
myFilePathString="/home/asdf asdf/file.py";
params=shlex.split('x-terminal-emulator -e bash -c "python3 -i \''+myFilePathString+'\'"');
subprocess.call(params);
我说,这些示例可能需要一些时间,因为将参数传递给bash(在另一个命令中打开)可能会有问题,而无需采取一些步骤。另外,您需要知道如何在正确的位置使用引号,或者,例如,如果文件路径中有空格,那么您将遇到问题,并且可能不知道原因

编辑:为了清楚和部分回答,我发现在Windows中有一种标准方法可以做到这一点:

cmd /K [whatever your commands are]

所以,如果你不知道我的意思,试试看会发生什么。下面是我找到信息的URL:

umm在windows上的cmd.exe-c command1;命令2;。。。我想这可能是一个不同的开关,取决于你是否想保持它打开,我想不起来我的头顶。。。你到底想做什么。。。我所能看到的有效用例很少,这将是期望的行为。我正在为Python文本编辑器创建一个运行快捷方式。我希望它打开一个终端,在编辑器中运行脚本,并保持打开状态,显示输出,同时允许用户在终端上执行任何需要的操作。无论哪种方式,他们都需要查看输出并关闭窗口。还不如提供额外的功能,可以使用开放式终端,这是我个人的编程偏好,有点像SciTE中的F5,除了我想让它真正打开系统的终端,而不是有自己的SciTE的内置终端,比如输入语句和其他东西。这可能取决于平台,甚至可能取决于桌面环境。你能在问题中指定这些吗?同时,我想我总是可以在当前目录中打开一个终端,让用户手动运行脚本。或者有一个快捷方式,一个用于运行/关闭系统,另一个用于运行并保持打开而不允许用户输入。不需要选择一个。