from glob import glob
pattern = "D:\\report\\shakeall\\*.txt"
filelist = glob(pattern)
def countwords(fp):
with open(fp) as fh:
return len(fh.read().split())
print "There are" ,sum(map(countwords, filelist)), "words in the files. " "From directory",pattern
import os
import re
import string
uniquewords = set([])
for root, dirs, files in os.walk("D:\\report\\shakeall"):
for name in files:
[uniquewords.add(x) for x in open(os.path.join(root,name)).read().split()]
wordlist = list(uniquewords)
このコードは、一意の単語と合計単語の合計数をカウントします。しかし問題は、 len(uniquewords) と書くと、たとえば「shake」「shake!」などと認識してしまい、無理な数字になってしまうことです。「シェイク」と「シェイク?」別のユニークな言葉として。リストを作成して変更することで、一意の単語から句読点を削除しようとしましたが、すべて失敗しました。誰でも私を助けることができますか?