解析Python subprocess.check_output()函数

10

我正在尝试在 Python 中使用和操作 subprocess.check_output() 的输出结果,但由于其以字节形式返回,因此需要进行转换。

for line in output:
    # Do stuff

不能正常工作。有没有办法将输出重构为在标准输出时呈现的行格式?或者什么是搜索并使用此输出的最佳方法?

提前致谢!

2个回答

13

subprocess.check_output() 返回一个单个字符串。使用str.splitlines()方法迭代该字符串中的各个行:

for line in output.splitlines():

你太棒了!谢谢。我知道一定有类似于splitlines()这样简单的函数可以做到这个:D - DJMcCarthy12

0

对于任何跟进的人:

output = subprocess.check_output(cmd, shell=True)

for line in output.splitlines():
   print(line)

将输出:

b'first line'
b'second line'
b'third line'

正在进行:

output = subprocess.check_output(cmd, shell=True)

output = output.decode("utf-8")
for line in output.splitlines():
   print(line)

将输出:

first line
second line
third line

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接