需要你的指导! 想要检查一些文本文件是否存在针对自定义词典的任何拼写错误。 这是代码:
Dictionary=set(open("dictionary.txt").read().split())
print Dictionary
SearchFile = open(input("sample.txt"))
WordList = set()
for line in SearchFile:
line = line.strip()
if line not in Dictionary:
WordList.add(line)
print(WordList)
但是当我打开并检查样本文件时没有任何改变。我做错了什么?
答案 0 :(得分:1)
你做错了什么并没有明确改变任何文件中的任何内容。
这里有一些代码来展示如何将文件写入文件......
fp = open(somefilepath,'w')
这一行打开一个文件进行写入,'w'告诉python创建文件(如果它不存在),但如果文件确实存在,也会删除该文件的内容。如果要打开文件进行写入并保留当前内容,请改用“a”。 'a'是追加。
fp.write(stuff)
将变量'stuff'中的任何内容写入文件。
希望这会有所帮助。有关您问题的更具体的代码,请告诉我们您要写入文件的确切内容。
此外,这里有一些文档可以帮助您更好地理解文件主题:http://docs.python.org/tutorial/inputoutput.html#reading-and-writing-files
编辑:但你没有改变任何东西!
在您的脚本结束时,您已经完成了这项工作:
1. Dictionary is a set containing all acceptable words
2. WordList is a set containing all not acceptable lines
3. You have read to the end of SearchFile
如果我正确理解您的问题,您现在要做的是:
4. find out which Disctionary word each line stored in Wordlist should be
5. re-write SearchFile with the offending lines replaced.
如果这是正确的,你打算如何确定哪个WordList条目应该是哪个Dictionary条目?你怎么知道实际的修正?你有没有尝试过这部分剧本(毕竟这是关键所在。它只是礼貌的)。您能否与我们分享您对此部分的尝试。
让我们假设你有这个功能:
def magic(line,dictionary):
"""
this takes a line to be checked, and a set of acceptable words.
outputs what line is meant to be.
PLEASE tell us your approach to this bit
"""
if line in dictionary:
return line
...do stuff to find out which word is being mis spelt, return that word
Dictionary=set(open("dictionary.txt").read().split())
SearchFile = open("sample.txt",'r')
result_text = ''
for line in SearchFile:
result_text += magic(line.strip(),Dictionary) #add the correct line to the result we want to save
result_text += '\n'
SearchFile = open("sample.txt",'w')
SearchFile.write(result_text) # here we actually make some changes
如果您还没有考虑如何找到错误拼写行的实际字典值,请尝试这样做:http://norvig.com/spell-correct.html
如果您需要任何有意义的帮助,重要的是要表明您至少尝试解决问题的关键。