[英]How to Execute A Complex SoX Command-Line String In Python
我正在尝试使用Python中的subprocess模块在命令行上调用SoX来处理音频文件。
Python抱怨说找不到文件,但是如果直接从命令行调用,则同一命令可以完美地工作。
因此,Python不喜欢我如何构造命令-我不认为它喜欢双引号,但我不知道如何用Python接受的语法表示它。 这是Python不喜欢的命令:
s = ['sox', '-m', 'path/to/silence.wav',
'"|sox path/to/audio1.wav -p pad 0"',
'"|sox path/to/audio2.wav -p pad 5"',
'"|sox path/to/audio3.wav -p pad 10"',
'path/to/output.wav']
subprocess.call(s)
这是从命令行调用的有效命令:
sox -m path/to/silence.wav "|sox path/to/audio1.wav -p pad 0" "|sox path/to/audio2.wav -p pad 5" "|sox path/to/audio3.wav -p pad 10" path/to/output.wav
如果任何Python专家都可以举一个如何在.py中执行此示例的示例,将不胜感激。 提前致谢!
找到解决方案,我只需要删除双引号即可。 这是上述示例的正确Python代码:
s = ['sox', '-m', 'path/to/silence.wav',
'|sox path/to/audio1.wav -p pad 0',
'|sox path/to/audio2.wav -p pad 5',
'|sox path/to/audio3.wav -p pad 10',
'path/to/output.wav']
subprocess.call(s)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.