Python cmd停止终端显示stderr或stdout

时间:2015-10-19 12:17:24

标签: python python-2.7 cmd

原标题:Python cmd停止终端显示运行线

我无法像往常一样研究这个因为我不确定用什么术语来描述我想要停止的东西。(答案结果证明是stderr)

我写了一个小python程序,用他们的原生软件运行文件。我正在使用Linux,因此命令是

opener ="open" if sys.platform == "darwin" else "xdg-open" subprocess.call([opener, winner])

其中winner是要打开的文件路径。作为一个接口,我正在使用CMD包。一切都运行良好,如预期的那样。

我遇到的问题是终端。这是我不确定该怎么称呼的地方。运行subprocess.call后,终端会显示打开文件的操作。最终大约有60行,具体取决于打开的内容。

我有三个问题:

  1. 您对处理文件打开的终端行称为什么?

  2. 如何阻止这些行显示。我不需要特定的代码,只需要一个方向。我意识到可能没有办法从python中做到这一点,但我希望有。

  3. 这是关于python包的一般性问题。 cmd docs表示这对于测试工具,管理工具和原型非常有用,后来这些工具将包含在更复杂的界面中。但它没有提供其他接口选项。我遇到了cmd的限制吗?如果是这样,我应该使用什么命令行界面包来解决这个问题。 (不幸的是,我认为我对python还不够好,但还没有完全成功)。

  4. def start_winner(lst): #starts a file link or a random one from a list winner=random.choice(lst) opener ="open" if sys.platform == "darwin" else "xdg-open" subprocess.call([opener, winner])

1 个答案:

答案 0 :(得分:0)

这个答案是100%@PadraicCunningham。如果他发布了答案,那就投票给他了。

问题的答案:

1)命令输出是stderr(可能很容易就是stdout)。如果您不确定差异,wikilink

2)我将启动功能改为

def start_winner(lst): #starts a file link or a random one from a list winner=random.choice(lst) f=open(os.devnull,"w") opener ="open" if sys.platform == "darwin" else "xdg-open" subprocess.call([opener, winner], stdout=f, stderr=f)

3)不,CMD不是问题,我缺乏理解输出。