2012-09-26 2 views
2

파이썬 open(filename, 'w+')을 사용하여 파일에 쓸 때 새 텍스트 외에 파일에 여러 줄의 문자가 작성되었습니다. 파이썬 2.7.3파이썬 - 파일에 쓸 때 null 문자가 추가됨

from sys import argv 

script, filename, random = argv 

my_file = open(filename, 'w+') 
added_line = raw_input("Type what you want to add: ") 

my_file.write(added_line) 

print my_file.read() 

my_file.close() 

나는 자신을 가르치고 있으며, 파일 열기와 쓰기를 연습하고 있습니다 (분명히 추측합니다). 프로그램을 실행하고 새 텍스트를 묻습니다. 나는 또한 open(filename, 'a')을 시도했다.

무엇이 누락 되었습니까?

감사합니다.

+0

저에게 맞습니다. 어떤 OS를 실행하고 있습니까? 그리고이 NULL 바이트가 존재한다고 어떻게 결정합니까? (BTW,'.read()'를 쓰고 난 후에는 read 포인터가 파일의 끝에 있기 때문에 아무 것도 할 수 없지만 NULL이나 다른 바이트를 추가하지는 않습니다.) – geoffspear

+0

Windows 7 Pro를 사용하고 있습니다. Powershell 및 Notepad ++에서 모든 것을 실행하고 있습니다. 내가 추가하고 싶은 글을 쓸 때 Powershell 터미널은 20 줄을 건너 뛰고 더 횡설수설 한 것을 출력한다. 그런 다음 메모장 ++에서 파일에 액세스하면'NULL NULL NULL ... '이 200 줄 정도 표시됩니다. – mipnix

+1

Powershell 외부에서 사용해 볼 수 있습니까? 나는 이것을 재현 할 수 없으며, 그렇게해서는 안된다. ''w ''모드 만 사용해 보셨습니까? (''w + ''는 어쨌든 파일을 자른다). – geoffspear

답변

0

w 옵션을 사용하여 파일을 열려고 시도했지만 알고있는 한 w 옵션으로 파일을 열면 파일에 쓸 수 있기 때문에 read() 메서드를 실행할 수 없습니다. 실제로 w+을 사용하면 읽고 쓸 수 있습니다. ('w +'는 파일을 자릅니다). r+은 읽기 및 쓰기 용 파일을 엽니 다.

읽기 전에 파일의 맨 위로 돌아 오십시오. 그렇지 않으면 빈 문자열을 읽게됩니다.

나를 위해 일했습니다.

관련 문제