외국어 텍스트에서 초과 된 공백을 제거하는 스크립트를 작성했습니다. Windows 명령 프롬프트에서 스크립트를 실행하면 오류가 발생하지 않습니다. 모든 것이 완벽 해 보입니다. 그러나 스크립트에서 지정한 출력 파일이 작성되지 않았거나 입력 파일이 수정되지 않았습니다. 나는 쓸 텍스트 파일 'corpus_1'을 작성하려고 시도했다. 그런 다음 입력 파일로 다시 쓰려고했습니다. 어느 쪽이든, 지정된 파일은 수정되지 않은 상태로 유지됩니다. 내 스크립트를 파일에 쓰게하려면 어떻게합니까? 내 코드에서 무엇을 놓치고 있습니까?내 스크립트가 파일에 쓰지 않는 이유는 무엇입니까?
def lettersWhitespace():
replacements = {' ':' ', 'c ':'c'}
with open('C:\\Users\\Charles\\corpus.odt','w+') as infile, open('C:\\Users\\Charles\\corpus_1.odt', 'w') as outfile:
for line in infile:
for src, target in replacements.iteritems():
line = line.replace(src, target)
outfile.write(line)
편집 : 나는 그 문제를 발견했다고 생각한다. 내 첫 줄 'def lettersWhitespace() :'가 중복 된 것처럼 보입니다. 작성된 것처럼 스크립트는 함수를 정의하지만 해당 함수를 호출하지는 않습니다. 이 소리가 맞습니까?
'w +'는 파일을 지 웁니다. 나는 그것이 당신의 유일한 사본이 아니기를 바랍니다. – user2357112
입력 해 주셔서 감사합니다. 몇 가지 백업이 있지만 스크립트를 실행 한 후에 파일을 지우지 않고 있습니다. 아무것도 수정되지 않습니다. 그러나 마침내 이것이 작동하게되면 'w +'보다는 'w'가 있어야합니까? –