Python:将egrep输出附加到文件

时间:2017-06-03 17:52:33

标签: python grep append

在Python脚本中,我试图计算{H9,H10 ... C21,H11}出现在一组文件中的次数。我不需要集合中每个单独短语的计数,只需要一个总和。文件名包含在名为“legend”的数组中,并按名称进行数字排序。 我最好的尝试如下:

for nitem in sorted(legend, key=numericalSort):
    with open(nitem, 'a+') as f:
        with open('block.txt', 'a+') as myfile:
            var5 = 'egrep -c "H9|H10|N71|N61|H32|C81|N91|C51|C61|C41|N11|N31|C21|H11" <%s> %s' %(nitem,myfile)
            os.system(var5)

当我运行它时,我对图例中包含的每个文件都会出现以下错误(下面只包含一条错误消息):

sh: -c: line 0: syntax error near unexpected token `<'
sh: -c: line 0: `egrep -c "H9|H10|N71|N61|H32|C81|N91|C51|C61|C41|N11|N31|C21|H11" <file00.dat> <open file 'block.txt', mode 'a+' at 0x7f71196ec660>'

我想要的只是在python中附加egrep,但不能这样做。

1 个答案:

答案 0 :(得分:0)

我找到了一种方法:

for nitem in sorted(legend, key=numericalSort):
    with open(nitem, 'a+') as f:
        var5 = '''egrep -c "H9|H10|N71|N61|H32|C81|N91|C51|C61|C41|N11|N31|C21|H11" %s >> filename.txt''' %(nitem)
        os.system(var5)

使用三引号而不是混淆用于UNIX追加的python附加似乎可以解决问题。