使用python os或子流程模块在后台运行命令行程序
我正在尝试使用python中的使用python os或子流程模块在后台运行命令行程序,python,python-2.7,ffmpeg,subprocess,Python,Python 2.7,Ffmpeg,Subprocess,我正在尝试使用python中的os或subaccess模块运行命令。命令提示窗口在终止前短暂闪烁。有没有办法消除弹出的命令提示符窗口 例如: os.system("ffmpeg -i output.wav output.flac") 有没有一种方法可以在后台运行,这样用户就不会注意到这一点 我正在用Python2.7运行Windows7。。。。你甚至用你要用的模块给它加了标签 subproccess.Popen("ffmpeg -i output.wav output.flac".split(
os
或subaccess
模块运行命令。命令提示窗口在终止前短暂闪烁。有没有办法消除弹出的命令提示符窗口
例如:
os.system("ffmpeg -i output.wav output.flac")
有没有一种方法可以在后台运行,这样用户就不会注意到这一点
我正在用Python2.7运行Windows7。。。。你甚至用你要用的模块给它加了标签
subproccess.Popen("ffmpeg -i output.wav output.flac".split(),shell=True).communicate()
应该这样做 最简单的方法是尝试利用模块对结构的部分支持。大概是这样的:
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()
def asyncRun(命令):
操作系统(命令)
t=Thread(target=asyncRun,args=('ping 127.0.0.1-s 271',)
t、 start()
适用于windows 10+EMET+2.7我想你的意思是
shell=False
。shell=True会告诉它使用系统环境。。。这样你就不必通过像环境shell=False
可能会中断,除非ffmpeg与脚本位于同一文件夹中,或者传入了绝对路径。如果使用shell=True
,则无法传递参数列表,它必须是字符串。当您使用shell=False
时,您仍然可以获得系统环境,但实际上并不是生成一个shell来执行命令。另外,OP特别希望避免在命令运行时出现命令提示窗口,我想使用shell=True
不会阻止它(不过,没有Windows机器来验证这一点)。是的,看起来你是对的,不需要传递shell在Windows上是真的。。。我的错