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

Python 读取目录中的所有文件,并根据其内容对其进行计数,python,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

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

#!/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个文件中,只有一个文件生成输出。其他文件导致一个名为

太多的args


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

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))