在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,但不能这样做。
答案 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附加似乎可以解决问题。