我正在构建一个web应用程序,它将处理(pad、mix、merge等)声音文件,我发现sox完全符合我的要求.Sox是一个linux命令行程序,我对python web app在我的服务器上按请求启动新的Sox进程感到有点不舒服.

例子:

import os
os.system('sox input.wav -b 24 output.aiff rate -v -L -b 90 48k')

对我来说,整个设置似乎有点不稳定.

所以我的问题是,在python(或任何脚本语言)web应用程序中运行命令行程序的最佳实践是什么?

为了绕过整个请求响应周期,消息队列是要实现的一件事.但是,有没有其他方法可以让这些东西变得更优雅呢?

推荐答案

subprocess模块是从Python运行其他程序的首选方式——比os.system模块灵活得多,使用起来也更好.

import subprocess
#subprocess.check_output(['ls', '-l'])  # All that is technically needed...
print(subprocess.check_output(['ls', '-l']))

Python相关问答推荐

try 从网站获取表(ValueRight:如果使用所有纯量值,则必须传递索引)

如果在第一行之前不存在其他条件,如何获得满足口罩条件的第一行?

将C struct 的指针传递给Python中的ioctel

Pandas 按照特殊规则保留每n行

Django序列化器没有验证或保存数据

每个组每第n行就有Pandas

Python中的Pool.starmap异常处理

Ibis中是否有一个ANY或ANY_UTE表达,可以让我比较子查询返回的一组值中的值?

使用Keras的线性回归参数估计

Pandas 第二小值有条件

ModuleNotFound错误:没有名为Crypto Windows 11、Python 3.11.6的模块

Gekko:Spring-Mass系统的参数识别

Odoo 16使用NTFS使字段只读

pandas在第1列的id,第2列的标题,第3列的值,第3列的值?

名为__main__. py的Python模块在导入时不运行'

如何使用Numpy. stracards重新编写滚动和?

python panda ExcelWriter切换动态公式到数组公式

下三角形掩码与seaborn clustermap bug

重置PD帧中的值

在方法中设置属性值时,如何处理语句不可达[Unreacable]";的问题?