Python cmd 停止终端显示 stderr 或 stdout

标签 python python-2.7 cmd

原标题:Python cmd stop terminal from showing running lines

我无法像往常一样研究这个,因为我不确定描述我试图停止的内容的正确术语。(答案原来是 stderr)

我编写了一个小的 python 程序,可以在其 native 软件中运行文件。我正在使用 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说这“对于测试工具、管理工具和稍后将被包装在更复杂的界面中的原型(prototype)很有用。”但它没有提供其他界面选项。我是否遇到了 cmd 的限制?如果是这样,我应该使用什么命令行界面包来解决这个问题。 (不幸的是,我认为我对 python 还不够好,还不能制作一个完整的 gui)

def start_winner(lst): #starts 文件链接或列表中的随机文件链接 winner=random.choice(lst) opener ="open"如果 sys.platform == "darwin"否则 "xdg-open" subprocess.call([opener, winner])

最佳答案

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

问题的答案:

1) 命令输出是 stderr(很可能是 stdout)。如果您不确定其中的区别,wikilink

2) 我将开始功能更改为

def start_winner(lst): #starts 文件链接或列表中的随机文件链接 winner=random.choice(lst) f=open(os.devnull,"w") opener ="open"如果 sys.platform == "darwin"否则 "xdg-open" subprocess.call([opener, winner], stdout=f, stderr=f)

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

关于Python cmd 停止终端显示 stderr 或 stdout,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33214182/

相关文章:

python - 使用 python 请求的一个连接请求某个站点上的多个页面

scripting - 批量帮助--将文件移动到目录,如果存在文件名,重命名001

python - 重用执行标志检查的方法中的代码

python - 使用生成器或理解从字典中创建一个二元组列表?

python - 如何在 Vim 插件输出中为单词着色

batch-file - `set VAR 2> nul` 后面的条件执行失败

windows - 是否可以使用批处理文件将文件发送到打印机?

python - 尝试将命令行输出保存到文件时出错

python - 读取文件并将其拆分为字典

Python 迭代 cx_Oracle 结果集时出错