subprocess Popen返回一个空字符串作为communication()[0] .split('\ n')上的最后一个列表成员

时间:2013-12-11 17:35:22

标签: python

当我使用subprocess.Popen调用程序时,如下所示:

input_file_new = subprocess.Popen('''grep -v '#' {} | cut -f 1,2,3,4,5,6,7,8 | \
        intersectBed -a stdin -b {} -wo | sort -k 1,1 -k 2,2n |uniq'''.format(infile,\
        bound_motif),shell=True,stdout=subprocess.PIPE).communicate()[0].split('\n')

我从生成的输出中获取所有行的列表,其中一个额外的空字符串成员作为最后一个列表项。我可以使用del将其删除,但这看起来很笨拙。我怎样才能避免额外的空字符串?

1 个答案:

答案 0 :(得分:2)

.split('\n')更改为

rstrip('\n').split()

最后一个空字符串可能只是一个尾随换行符!