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

时间:2014-05-03 23:09:57

标签: python command-line terminal

我想从Python脚本(不是标记为可执行文件,但实际上运行python3 myscript.py来运行它)打开一个终端,让终端运行命令,然后保持终端打开并让用户输入命令。

编辑(如建议):我主要需要Linux(我使用的是Xubuntu,Ubuntu等等)。了解Windows 7/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]

所以,如果你不知道我的意思,试试看看会发生什么。这是我找到信息的网址:http://ss64.com/nt/cmd.html

0 个答案:

没有答案