2017-06-03 46 views
0

在Python腳本中,我試圖計算{H9,H10 ... C21,H11}出現在一組文件中的次數。我不需要計算集合中的每個單個短語,只需要一個總和。文件名包含在名爲「legend」的數組中,並按名稱進行數字排序。 我最好的嘗試是下面:Python:將egrep輸出附加到文件中

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,但不能這樣做。

回答

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追加似乎做的伎倆。