我正在尝试运行:
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"))
这些运行正常,并将输出写入文件。
如果有人知道解决此问题的方法,请帮助我。
谢谢!
答案 0 :(得分: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)
一切正常,然后将其写入文件。