python 逐行循环 subprocess.check_output [英] python loop over subprocess.check_output by line
本文介绍了python 逐行循环 subprocess.check_output的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我需要遍历命令的输出.我以为我会使用 subprocess.check_output
,现在我有两个问题.
I need to loop over the output of a command. I thought I'd use subprocess.check_output
, now I have two problems.
这是一个文件:
foo
bar
这是我的 python 脚本:
Here's my python script:
import subprocess
for line in subprocess.check_output(['cat', 'foo']):
print "%r" % line
这就是我得到的:
$ python subp.py
'f'
'o'
'o'
'
'
'b'
'a'
'r'
'
'
我希望:
$ python subp.py
'foo
'
'bar
'
推荐答案
subprocess.check_output(['cat', 'foo']) 返回一个字符串:"foo bar"
subprocess.check_output(['cat', 'foo']) returns a string: "foo bar"
因此,您的 for 循环遍历字符串,逐个打印每个字符.
Thus, your for loop iterates over the string, printing every character, one-by-one.
以下应该可以解决您的问题:
The following should fix your problem:
import subprocess
print subprocess.check_output(['cat', 'foo'])
你也可以这样做:
import subprocess
for line in subprocess.check_output(['cat', 'foo']).split('
'):
print "%r" % line
这篇关于python 逐行循环 subprocess.check_output的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文