读取目录中的所有文件并根据其内容对它们进行计数

时间:2019-05-20 07:06:46

标签: python

我想加载目录中当前存在的所有文件并计算具有+和-

的文件
#!/usr/bin/python

import re
import sys

def run(body):

    bang = len(re.findall('\n\s{,1}!', body))
    minus = len(re.findall('\n\s{,1}-[^-]', body))
    plus = len(re.findall('\n\s{,1}\+[^\+]', body))

    rs = "(+:%d) (-:%d) (!:%d)" % (plus, minus, bang)
    return rs


f = open("", 'r')
a = f.read()

print(sys.argv[1], run(a))

在1000个文件中,只有一个文件正在生成输出。其他文件导致错误

  

参数过多

1 个答案:

答案 0 :(得分:0)

您需要迭代文件夹中的所有文件并检查它们的内容。尝试以下脚本:

import os
import re
import sys

def run(body):

    bang = len(re.findall('\n\s{,1}!', body))
    minus = len(re.findall('\n\s{,1}-[^-]', body))
    plus = len(re.findall('\n\s{,1}\+[^\+]', body))

    rs = "(+:%d) (-:%d) (!:%d)" % (plus, minus, bang)
    return rs

for root, _, files in os.walk(".", topdown=False):
   for name in files:
      f = open("os.path.join(root, name)", 'r')
      a = f.read()
      print("%s" % run(a))