Im은 Python2.x에서 다음을 사용합니다.csv module python3.1
import csv
f = open('test.csv', 'wb')
writer = csv.writer(f)
writer.writerow((fpath, md5sum, size)) # <str>, <str>, <int>
아무 문제없이 작동합니다. 그러나 이것을 Python3에서 실행하면 TypeError가 발생합니다.
writer.writerow((fpath, md5sum, size))
TypeError: write() argument 1 must be bytes or buffer, not str
트릭을 할 것입니다 비 바이너리 모드로 열려있는 파일에 데이터를 작성하는 물론
,하지만 난 유니 코드 Py3에서 처리되는 방식을 좋아하고 특히 파일에 쓰기 전에 데이터를 인코딩 할 그것에서 읽을 때 그것을 해독하십시오.
어떻게이 문제를 해결할 수 있습니까?
정확히 어떻게 데이터를 디코딩/인코딩하고 있고 바이너리 모드와 관련이 있습니까? – SilentGhost
유니 코드/바이트 분할의 요점은 인코딩/디코딩 자체를 다루지 않아도된다는 것입니다. 기본값에서 다른 코덱을 사용하려면 Ignacio의 대답을 참조하십시오. –
"자신의 인코딩을 처리하지 않아도된다는"요점을 설명해 주시겠습니까? 유니 코드/바이트 분할은이 작업과 어떤 관련이 있습니까? –