【问题标题】:Running 7zip command line silently via Python通过 Python 静默运行 7zip 命令行
【发布时间】:2013-08-18 04:10:53
【问题描述】:

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

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

"Extracting filename..." 这很糟糕,因为有些 rar 很大。

我正在尝试以静默/隐藏/相当的方式运行 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")

感谢所有帮助,谢谢。

【问题讨论】:

    标签: python executable popen


    【解决方案1】:

    将标准输出和标准错误传送到系统的空文件:

    import os
    
    with open(os.devnull, 'w') as null:
        subprocess.Popen(['7z', 'e', input_file, '-o', output_dest, '-y'], stdout=null, stderr=null)
    

    【讨论】:

    • 很好,所以这可以添加到 if 语句中?
    • @claw:当然,为什么不呢。
    • 这是 Blender 的好东西,谢谢。另外,我是只使用 7z 还是应该明确添加路径?
    • @claw:如果7z 不在您的路径中,您可能需要绝对路径。
    • @claw:哎呀,我把] 放错地方了。现在应该没事了。
    猜你喜欢
    • 2017-09-08
    • 1970-01-01
    • 1970-01-01
    • 2011-07-12
    • 1970-01-01
    • 2017-09-13
    • 1970-01-01
    • 2016-01-11
    • 2014-05-11
    相关资源
    最近更新 更多