gpt4 book ai didi

python - subprocess.getstatusoutput(来自 Python 的旧命令.setstatusoutput())的多平台替代方案是什么?

转载 作者:太空狗 更新时间:2023-10-29 20:10:13 25 4
gpt4 key购买 nike

下面的代码在 Python 3.0 中已过时,被替换为 subprocess.getstatusoutput()

import commands
(ret, out) = commands.getstatusoutput('some command')
print ret
print out

真正的问题是什么是来自 Python 的此命令的多平台替代方案,因为上面的代码在 Windows 下确实会失败,因为 getstatusoutput 仅在 Unix 下受支持,而 Python 不会告诉您这一点,而是您得到类似的东西:

>test.py
1
'{' is not recognized as an internal or external command,
operable program or batch file.

最佳答案

这将是 getstatusoutput() 的多平台实现:

def getstatusoutput(cmd): 
"""Return (status, output) of executing cmd in a shell."""
"""This new implementation should work on all platforms."""
import subprocess
pipe = subprocess.Popen(cmd, stdout=subprocess.PIPE, shell=True, universal_newlines=True)
output = "".join(pipe.stdout.readlines())
sts = pipe.returncode
if sts is None: sts = 0
return sts, output

关于python - subprocess.getstatusoutput(来自 Python 的旧命令.setstatusoutput())的多平台替代方案是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1193583/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com