gpt4 book ai didi

Python cmd 停止终端显示 stderr 或 stdout

转载 作者:行者123 更新时间:2023-11-28 19:16:14 27 4
gpt4 key购买 nike

原标题: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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com