相关疑难解决方法(0)

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

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

import subprocess
text = 'Hello World.'
print text
subprocess.call(['espeak', text])
Run Code Online (Sandbox Code Playgroud)

eSpeak会产生所需的声音,但是外壳会出现一些错误(ALSA lib ...,没有套接字连接),因此我无法轻易读取之前打印的内容.退出代码为0.

不幸的是,没有任何记录的选项可以关闭它的详细程度,所以我正在寻找一种只能在视觉上使其静音并保持打开的外壳清洁以进行进一步交互的方法.

我怎样才能做到这一点?

python subprocess espeak python-2.7

262
推荐指数
4
解决办法
20万
查看次数

在python子进程调用中抑制输出

对于以下命令:

subprocess.call(shlex.split(
            """/usr/local/itms/bin/iTMSTransporter -m lookupMetadata 
              -apple_id %s -destination %s"""%(self.apple_id, self.destination))
Run Code Online (Sandbox Code Playgroud)

它将整个输出打印到终端窗口.我如何在这里抑制所有输出?我尝试过subprocess.call(shlex.split(<command> > /dev/null 2&1)),但它没有产生所需的结果.我怎么会这样做?

python subprocess stdout

36
推荐指数
2
解决办法
3万
查看次数

如何读取子进程的stdout的第一个字节,然后在Python中丢弃其余的?

我想读一个子进程'stdout的第一个字节,知道它已经开始运行了.之后,我想丢弃所有进一步的输出,这样我就不用担心缓冲区了.

做这个的最好方式是什么?

澄清:我希望子进程继续与我的程序一起运行,我不想等待它终止或类似的东西.理想情况下,有一些简单的方法可以做到这一点,而不是诉诸threading,forkmultiprocessing.

如果我忽略输出流,或者.close()它,如果发送的数据多于它可以容纳在其缓冲区中的数据,则会导致错误.

python subprocess stream

31
推荐指数
2
解决办法
1万
查看次数

如何抑制subprocess.run()的输出?

从文档中的示例subprocess.run()来看,似乎不应该有任何输出

subprocess.run(["ls", "-l"])  # doesn't capture output
Run Code Online (Sandbox Code Playgroud)

但是,当我在python shell中尝试它时,列表被打印出来.我想知道这是否是默认行为以及如何抑制输出run().

python subprocess python-3.x

22
推荐指数
2
解决办法
2万
查看次数

python - 如何将错误重定向到/dev/null?

我的 python 脚本很有趣:

def start_pushdata_server(Logger):
    Logger.write_event("Starting pushdata Server..", "INFO")
    retcode, stdout, stderr = run_shell(create_shell_command("pushdata-server 
start"))
Run Code Online (Sandbox Code Playgroud)

我们想要将标准错误从pushdata-server二进制文件重定向到/dev/null。

所以我们像这样编辑它:

def start_pushdata_server(Logger):
    Logger.write_event("Starting pushdata Server..", "INFO")
    retcode, stdout, stderr = run_shell(create_shell_command("pushdata-server 
start 2>/dev/null"))
Run Code Online (Sandbox Code Playgroud)

2>/dev/null 但在 python 代码中添加是无效的。

那么我们如何在Python代码中将所有错误从“pushdata-server start”发送到null呢?

python linux

4
推荐指数
1
解决办法
5309
查看次数

标签 统计

python ×5

subprocess ×4

espeak ×1

linux ×1

python-2.7 ×1

python-3.x ×1

stdout ×1

stream ×1