2012-10-17 2 views
-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) 

하지만 열고 다시 확인하면 샘플 파일 아무것도 변경되지 않습니다. 무슨 일이야?

+0

'검색 파일'을 업데이트 한 적이 없습니다. 무엇을'WordList'로 사용하고 있습니까? –

+0

또한,'SearchFile'에서 무엇을 바꾸고 싶습니까 ?? 좀 더 구체적이어야합니다 .. –

답변

1

무엇을 잘못하고있는 것은 파일에서 명시 적으로 변경하지 않는 것입니다. 여기

fp = open(somefilepath,'w') 

이 줄을 쓰기 위해 파일을 엽니 다 ... 파일에 물건을 작성하는 방법을 보여주기 위해 코드를 조금되면, 'w'이란 않는 경우 파일을 작성하기 위해 파이썬을 알려줍니다 존재하지 않을뿐만 아니라 파일의 내용을 삭제합니다. 쓰기를 위해 파일을 열고 현재 내용을 유지하려면 대신 '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 항목이 어떤 사전 항목이 될 것으로 예상되는지 알아내는 방법은 무엇입니까? 실제 수정 사항을 어떻게 압니까? 스크립트의이 부분을 시도 했습니까 (결국 요점은 정중 할 것입니다). 이 부분에 대한 귀하의 시도를 우리와 함께 나눌 수 있습니까?

당신이 잘못 철자 라인이되기 위해 수정해야 실제 사전 값을 찾는 방법에 대해 생각하지 않은 경우
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

이전 요점을 되풀이하려면 의미있는 도움이 필요하다면 적어도 문제의 핵심을 해결하려고 시도했음을 보여주는 것이 중요합니다.

+0

Thx : 의견이 있습니다 ... 맞춤법이 틀린 단어가 사전에있는 단어와 맞지 않으면 사전에 대한 샘플 텍스트를 확인하고 싶습니다 ... 그게 내가하고 싶은 일입니다. – Aikin

+0

@Aikin : 내가 업데이트했습니다. 내 대답 – Sheena