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'
'\n'
'b'
'a'
'r'
'\n'
我希望:
$ python subp.py
'foo\n'
'bar\n'
推荐答案
subprocess.check_output(['cat', 'foo']) 返回一个字符串:"foo\nbar"
subprocess.check_output(['cat', 'foo']) returns a string: "foo\nbar"
因此,您的 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('\n'):
print "%r" % line
这篇关于python 按行循环遍历 subprocess.check_output的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文