python 3 strとbytesの問題
829 ワード
python 2/3のstrとbytes
今日python 2をpython 3に転送すると、ファイルを読み書きする際に多くの問題が発生しました.主にstrとbyteの間で暗黙的に変換できないことです.
strとbytes
strはencodeを経てbytesになる.
bytesはdecodeを経てstrになります.
ファイルの読み書き
だから後で自分に基準を決めます.
ファイルの読み込み:
ファイルの書き込み:
まとめてstrで読み込み(openはutf-8符号でデフォルトで読み込み)、書くときにencodeは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で書き込みます.