0

我已经看到很多关于 python 使用 popen 执行 .exe 文件的问题,并提到使用 PIPE 来停止进程的输出。抱歉,如果我的术语不正确,我对 python 很陌生。

我这个问题的主要目的是添加 stdout=PIPE 或类似的东西以防止任何输出显示,例如

“正在提取文件名...”这很糟糕,因为有些 rars 很大。

我正在尝试以静默/隐藏/相当的方式运行 7zip。使整个过程可以在后台运行,并且不会干扰当前的屏幕操作。

此时,当前脚本工作正常。

这是我的python代码: Python 2.7

Pythonw.exe 用于执行代码:

pythonw.exe 脚本.py

if ".rar" in input_file: 

    subprocess.Popen("C:\\Program Files (x86)\\7-Zip\\7z e " + input_file + " -o" + output_dest + " -y")

感谢所有帮助,谢谢。

4

1 回答 1

3

管道 stdout 和 stderr 到您系统的空文件:

import os

with open(os.devnull, 'w') as null:
    subprocess.Popen(['7z', 'e', input_file, '-o', output_dest, '-y'], stdout=null, stderr=null)
于 2013-08-18T04:18:00.667 回答