原标题: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 行。
我有三个问题:
处理文件打开的终端线叫什么?
如何阻止这些行出现。我不需要具体的代码,只是一个方向。我意识到可能无法通过 python 执行此操作,但我希望有。
这是一个关于 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)。如果您不确定其中的区别,wiki和 link
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/