The dictionary need to add every word in SpellingMistakes and the line number but it only adds the l
- by Will Boomsight
modules
import sys
import string
Importing and reading the files form the Command Prompt
Document = open(sys.argv[1],"r")
Document = open('Wc.txt', 'r')
Document = Document.read().lower()
Dictionary = open(sys.argv[2],"r")
Dictionary = open('Dict.txt', 'r')
Dictionary = Dictionary.read()
def Format(Infile):
for ch in string.punctuation:
Infile = Infile.replace(ch, "")
for no in string.digits:
Infile = Infile.replace(no, " ")
Infile = Infile.lower()
return(Infile)
def Corrections(Infile, DictWords):
Misspelled = set([])
Infile = Infile.split()
DictWords = DictWords.splitlines()
for word in Infile:
if word not in DictWords:
Misspelled.add(word)
Misspelled = sorted(Misspelled)
return (Misspelled)
def Linecheck(Infile,ErrorWords):
Infile = Infile.split()
lineno = 0
Noset = list()
for line in Infile:
lineno += 1
line = line.split()
for word in line:
if word == ErrorWords:
Noset.append(lineno)
sorted(Noset)
return(Noset)
def addkey(error,linenum):
Nodict = {}
for line in linenum:
Nodict.setdefault(error,[]).append(linenum)
return Nodict
FormatDoc = Format(Document)
SpellingMistakes = Corrections(FormatDoc,Dictionary)
alp = str(SpellingMistakes)
for word in SpellingMistakes:
nSet = str(Linecheck(FormatDoc,word))
nSet = nSet.split()
linelist = addkey(word, nSet)
print(linelist)
#
# for word in Nodict.keys():
# Nodict[word].append(line)
Prints each incorrect word on a new line