使用python os或subprocess模块​​在后台运行命令行程序

时间:2014-07-26 19:27:59

标签: python python-2.7 ffmpeg subprocess

我正在尝试使用python中的ossubproccess模块运行命令。在终止之前,命令提示符窗口会短暂闪烁。有没有办法消除弹出的命令提示符窗口..?

例如:

os.system("ffmpeg -i output.wav output.flac")

有没有办法在后台运行此功能,以便用户可能不会注意到这一点。?

我正在运行带有python 2.7的Windows 7。

3 个答案:

答案 0 :(得分:0)

粗...你甚至用你将要使用的模块标记它......

subproccess.Popen("ffmpeg -i output.wav output.flac".split(),shell=True).communicate()

应该这样做......

答案 1 :(得分:0)

最简单的方法是尝试利用subproccess模块对STARTUPINFO结构的部分支持。像这样:

info = subprocess.STARTUP_INFO()
info.dwFlags = subprocess.STARTF_USESTDHANDLES | subprocess.STARTF_USESHOWWINDOW
info.wShowWindow = subprocess.SW_HIDE

process = subprocess.Popen("ffmpeg -i output.wav output.flac", startupinfo=info)
process.wait()

答案 2 :(得分:0)

def asyncRun(command): os.system(command)

t = Thread(target=asyncRun, args=('ping 127.0.0.1 -s 271',)) t.start()

适用于Windows 10 + EMET + 2.7