在python中执行命令行程序

可能重复:
在Python中调用外部命令

我正在构建一个将要操作(打击,混音,合并等)声音文件的Web应用程序,并且我发现sox完全符合我的要求。 Sox是一个linux命令行程序,我感到有点不舒服,因为python web应用程序在每个请求的基础上在我的服务器上启动新的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'])

“这整个设置对我来说似乎有点不稳定。”

与ffmpegx的人讨论关于通过命令行后端创建GUI前端的问题。 它似乎没有打扰他们。

事实上,我认为通过命令行后端的GUI(或web)前端实际上更加稳定,因为GUI和命令之间有非常非常干净的界面。 只要命令行选项兼容,命令就可以以不同于网络的速度演变,您不可能发生破坏。


我感到有点不舒服,让python web应用程序在每个请求的基础上在我的服务器上启动新的sox进程。

对我来说,这似乎意味着他担心,如果他向公众开放了他的网络服务器,那么如果有15000人决定单击该按钮启动sox,那么他可以做的不多,以防止他的服务器资源被占用通过这种方式。

链接地址: http://www.djcxy.com/p/13487.html

上一篇: Executing command line programs from within python

下一篇: Python Subprocess module commandline program