-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 に答える