【发布时间】:2016-09-30 16:11:45
【问题描述】:
如何从 Python 脚本中调用外部命令(就像我在 Unix shell 中输入的一样)?
我试过这段代码:
from subprocess import call
call(["ls", "-l"])
它有效。 但是当我在 Python 脚本中尝试这段代码时:
from subprocess import call
call(['sox', '/home/pi/OnoSW/data/opsoroassistant/rec.wav', '-n', 'stat', '2>&1', '|', 'sed', '-n', 's#^RMS amplitude:[^0-9]*\([0-9.]*\)$#\1#p'])
它不起作用。我收到此错误:
sudo python getRMSAmplitude.py sox FAIL stat: Summary effect: unknown option
当我在我的 Unix Shell 中输入这个命令时:
sox ../../data/opsoroassistant/rec.wav -n stat 2>&1 | sed -n 's#^RMS amplitude:[^0-9]*\([0-9.]*\)$#\1#p'
我明白了:
0.001754
什么是正确的。
【问题讨论】:
标签: python shell command subprocess sox