파일에 쓸 유니 코드 문자열이 있습니다.파이썬 3.x에서 인코딩 된 문자열을 쓰기() -
파이썬 2에서 내가 쓸 수 :
open('filename', 'w').write(s.encode('utf-8'))
을하지만 이것은 파이썬 3. 실패 분명히, s.encode()는 쓰기() 함수는 허용하지 않습니다 '바이트'형태의 뭔가를 반환합니다 :
TypeError: must be str, not bytes
누구든지 위의 코드를 파이썬 3에 포팅하는 방법을 알고 있습니까?
편집 : 바이너리 모드를 사용하여 제안 된 여러분 모두에게
감사합니다! 불행히도, 이로 인해 \ n 문자에 문제가 발생합니다. 파이썬 2와 동일한 결과를 얻을 수있는 방법이 있습니까 (즉, \ n의 OS 관련 변환을 유지하면서 비 ANSI 문자를 UTF-8로 인코딩하는 방법)?
감사합니다.
파이썬 초보자는 ** 텍스트 ** 파일로 작업하는 두 가지 유효한 옵션이 있다는 것을 알았 기 때문에이 대답을 받아 들였습니다.이 경우에는'open'을'encoding'으로 설정해야합니다() 파일을 만들거나 ** 바이너리 ** 파일로 만들었는데, 이는 이전에 가지고 있던 것과 매우 비슷할 것이다. (하지만 줄 바꿈을 처리하는 데 어려움을 겪지 만, 나는 그들을 치료할 수있는 약간의 노력으로 너무). 지금까지 ** text ** ('str')과 (binary) ** data ** ('bytes')를 구별하는 Python 3.x 방식을 알고 감사하게되었습니다. – Tom