繁体   English   中英

如何在Python中执行复杂的SoX命令行字符串

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM