Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用python os或子流程模块在后台运行命令行程序_Python_Python 2.7_Ffmpeg_Subprocess - Fatal编程技术网

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

使用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(

我正在尝试使用python中的
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上是真的。。。我的错