当前位置: 首页 > 面试题库 >

如何在Python 2.7中隐藏子进程的输出

百里雅珺
2023-03-14
问题内容

我在Ubuntu上使用eSpeak,并且有一个Python 2.7脚本可以打印并说出一条消息:

import subprocess
text = 'Hello World.'
print text
subprocess.call(['espeak', text])

eSpeak产生所需的声音,但由于一些错误(ALSA lib ...,没有套接字连接)而使外壳混乱,因此我无法轻松读取之前打印的内容。退出代码为0。

不幸的是,没有记录的选项可以关闭它的冗长性,因此我正在寻找一种方法,仅在视觉上使其静音并保持打开的外壳干净以进行进一步的交互。

我怎样才能做到这一点?


问题答案:

将输出重定向到DEVNULL:

import os
import subprocess

FNULL = open(os.devnull, 'w')
retcode = subprocess.call(['echo', 'foo'], stdout=FNULL, stderr=subprocess.STDOUT)

它实际上与运行此shell命令相同:

retcode = os.system("echo 'foo' &> /dev/null")


 类似资料:
  • 我想让我的Bash脚本对最终用户来说更加优雅。当Bash执行命令时,如何隐藏输出? 例如,当Bash执行时 以下内容将显示给执行Bash的用户: 现在我想对用户隐藏这一点,而是显示: 我怎样才能完成这项任务?我一定会帮助使脚本更加用户友好。如果发生错误,则应向用户显示。 我想知道如何显示相同的消息,而一组命令正在执行。

  • 输入一个语句后按回车键,MATLAB自动在屏幕上显示结果,但如果该行命令是以";"结尾,则MATLAB仍会进行运算赋值,但不显示任何输出结果.这一点在生成复杂矩阵时特别有用.例如: A = magic(100);

  • 我在主报表中有一个子报表和页脚,我需要隐藏子报表部分的页脚。有没有办法做到这一点? 详情:我有主要报告。它有几个细节带和一个页脚。其中一个细节带(细节4)用从查询返回的数据填充。在这个带之后是“细节5”带,其中只有子报告,这是最后一个细节带。我的子报告包含几页文本。我需要页脚从我的主要报告不显示在这几页。所以我需要的是:页脚应该应用于页面,这是在细节带1-4生成的,但不是“细节5”。

  • 我想使用Selenium ChromeDriver打开Chrome浏览器,而不让Chrome消息输出到控制台。 我想隐藏输出消息"DevTools监听..." 但这一信息仍在显现。如何隐藏输出消息“DevTools侦听…”用Python?

  • 我的列车数据集中有648个变量。编码时: python只输出前30个和后30个变量。我想知道所有变量的结果。

  • 问题内容: 是否可以将某些字段排除在json字符串中? 这是一些伪代码 我想排除privateProperty1和privateproperty2出现在json字符串中 所以我想,我可以使用stringify replacer函数 并在串 但是在jsonString中,我仍然将其视为 我想在其中没有privateproperties的字符串。 问题答案: 在Mozilla的文档说回报(而不是):