0

popen を使用した .exe ファイルの Python 実行に関する多くの質問と、プロセスの出力を停止するために PIPE を使用することについての言及を見てきました。私の用語が間違っている場合はお詫びします。私はPythonを初めて使用します。

この質問の主な目的は、 stdout=PIPE または同様のものを追加して、次のような出力が表示されないようにすることです

「ファイル名を抽出しています...」 一部の rar は大きいため、これは非常に悪いことです。

7zip をサイレント/非表示/かなり実行しようとしています。プロセス全体がバックグラウンドで実行され、現在の画面上の操作に干渉しないようにします。

この時点で、現在のスクリプトは正常に動作します。

ここに私のpythonコードがあります: Python 2.7

コードの実行に使用される Pythonw.exe:

pythonw.exe script.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 をシステムの null ファイルにパイプします。

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 に答える