python 3 strとbytesの問題

829 ワード

python 2/3のstrとbytes
今日python 2をpython 3に転送すると、ファイルを読み書きする際に多くの問題が発生しました.主にstrとbyteの間で暗黙的に変換できないことです.
strとbytes
strはencodeを経てbytesになる.
bytesはdecodeを経てstrになります.
ファイルの読み書き
だから後で自分に基準を決めます.
ファイルの読み込み:
file = open(filename, 'r') # default encoding is utf-8
s = file.read() #       str
items = s.split() #       str  ,    

ファイルの書き込み:
file = open(filename,'wb')
file.write(s.encode('utf-8')) # encode bytes,      
file.close()

まとめてstrで読み込み(openはutf-8符号でデフォルトで読み込み)、書くときにencodeはbytesで書き込みます.