0

我正在尝试运行:

output = subprocess.Popen(["systeminfo"],
                                      stdout=subprocess.PIPE, stdin=subprocess.PIPE,
                                      stderr=subprocess.PIPE)
file.write(output.stdout.read().decode("utf-8"))

在 pyccharm 中,这段代码运行良好,它会将输出写入文件,但是当我使用时:

pyinstaller --onefile --noconsole start.py

并运行生成的 .exe 它卡在我的代码的那部分。我不知道为什么会这样。我也将它用于:

output = subprocess.Popen(["netstat", "-aon"],
                                          stdout=subprocess.PIPE, stdin=subprocess.PIPE,
                                          stderr=subprocess.PIPE)
file.write(output.stdout.read().decode("utf-8"))

和:

output = subprocess.Popen(["arp", "-a"],
                                          stdout=subprocess.PIPE, stdin=subprocess.PIPE,
                                          stderr=subprocess.PIPE)
file.write(output.stdout.read().decode("utf-8"))

这些运行良好并将输出写入文件。

如果有人知道这个问题的解决方案,请帮助我。

提前致谢!

4

1 回答 1

0

它与我的编码有关。使用后:

sys_enc = locale.getpreferredencoding()
output = subprocess.run(["systeminfo"], stdout=subprocess.PIPE, stdin=subprocess.PIPE, stderr=subprocess.PIPE, encoding=sys_enc)
file.write(output.stdout)

一切正常,它写入文件正常。

于 2018-12-13T10:56:28.103 回答