-1

需要您的指导!想要检查一些文本文件是否存在针对自定义词典的任何拼写错误。这是代码:

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)

但是当我打开并检查示例文件时,没有任何改变。我做错了什么?

4

1 回答 1

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

要重申之前的观点,重要的是要表明如果您需要任何有意义的帮助,您至少已经尝试解决问题的症结所在。

于 2012-10-17T11:17:52.947 回答