ディレクトリ内の多くのファイルの単語数を取得するスクリプトを作成しようとしています。私はそれを私が望むものにかなり近づけて動作させていますが、私を失望させている部分が1つあります. これまでのコードは次のとおりです。
import glob
directory = "/Users/.../.../files/*"
output = "/Users/.../.../output.txt"
filepath = glob.glob(directory)
def wordCount(filepath):
for file in filepath:
name = file
fileO = open(file, 'r')
for line in fileO:
sentences = 0
sentences += line.count('.') + line.count('!') + line.count('?')
tempwords = line.split()
words = 0
words += len(tempwords)
outputO = open(output, "a")
outputO.write("Name: " + name + "\n" + "Words: " + str(words) + "\n")
wordCount(filepath)
これにより、単語数が「output.txt」という名前のファイルに書き込まれ、次のような出力が得られます。
Name: /Users/..../..../files/Bush1989.02.9.txt
Words: 10
Name: /Users/..../..../files/Bush1989.02.9.txt
Words: 0
Name: /Users/..../..../files/Bush1989.02.9.txt
Words: 3
Name: /Users/..../..../files/Bush1989.02.9.txt
Words: 0
Name: /Users/..../..../files/Bush1989.02.9.txt
Words: 4821
そして、これはディレクトリ内の各ファイルに対して繰り返されます。ご覧のとおり、ファイルごとに複数のカウントが得られます。ファイルは次のようにフォーマットされています。
合同議会前の行政目標に関する演説
1989年2月9日
議長、大統領、そして下院議員と上院議員の皆様...
したがって、スクリプトはファイルの各「部分」の数を示しているようです。たとえば、最初の行の 10 単語、改行の 0、次の行の 3、次の行の 0、そしてテキストの本文を数えます。
私が探しているのは、各ファイルの単一のカウントです。ヘルプ/指示をいただければ幸いです。