2014-06-11 5 views
-3
gd = open("gamedata.py" , "rb+") 

gd.write(CharHealth = 100) 

gd.close 

write()는 키워드 인수를 사용하지 않고 그 이유를 알 수 없습니다. 가장 좋은 해석은 코드가 (CharHealth = 100)을 gamedata.py에 쓰는 대신 키워드 인수로 해석하려고한다는 것입니다.오류 발생 : write()에 키워드 인수가 없습니다.

난 당신이 텍스트를 작성하려면

답변

6

을 gamedata.py 다른 코드와 함께 (한 줄의 코드로) (CharHealth = 100)을 쓰고 싶어하는 bytes 객체에서 다음 통과하지 파이썬 구문 :

gd.write(b'CharHealth = 100') 

파일을 이진 모드로 열었 기 때문에 b'..'bytes 리터럴을 사용해야합니다.

파이썬이 나중에 파일을 읽을 수 있고 내용을 해석하면 파이썬은 문자열을 쓰고 있다는 사실을 바꾸지 않습니다.

gd.close은 아무 것도하지 않습니다. 실제로 이것을 호출하지 않고 close 메소드를 참조하고 있습니다.

with open("gamedata.py" , "rb+") as gd: 
    gd.write(b'CharHealth = 100') 

파이썬 소스 코드를 유니 코드 텍스트가 아닌 바이트, 정말 필요가 바이너리 파일을 열거하는 것입니다 : 더 나은 파이썬 당신을 위해 자동 닫기 대신 컨텍스트 매니저로 열린 파일 객체를 사용하고있다합니다 모드를 사용하거나 방금 작성한 내용을 다시 읽어 올 필요가 없습니다. 모드 사용 문자열로 'w' 사용

with open("gamedata.py" , "w") as gd: 
    gd.write('CharHealth = 100') 
+0

gd.write를 ('CharHealth = 100') 오류 메시지를 반환합니다 : 'STR'그가 그것을 작성하는 당신에게 왜 인터페이스 – user3730827

+1

예, 그건 버퍼를 지원하지 않습니다 바이트 수. – kindall

관련 문제