在Python3中读取UTF-8编码文件和文本文件

Bel*_*rov 6 unicode utf-8 python-3.x

好的,所以python3和unicode.我知道所有python3字符串实际上都是unicode字符串,所有python3代码都存储为utf-8.但python3如何读取文本文件?是否假设它们是以utf-8编码的?在阅读文本文件时是否需要调用decode('utf-8')?pandas read_csv()和to_csv()怎么样?

Jos*_*efZ 7

Python的内置函数open()有一个可选参数encoding:

encoding是用于解码或编码文件的编码的名称.这应该只在文本模式下使用.默认编码取决于平台(无论locale.getpreferredencoding()返回),但可以使用Python支持的任何文本编码.请参阅 codecs模块以获取支持的编码列表.

类似的参数可以在熊猫中找到:

  • pandas.read_csv():: encodingstr,默认无.编码以在读/写时用于UTF(例如‘utf-8’).
  • Series.to_csv():encoding:字符串,可选.对于3之前的python版本,表示内容为非ascii时要使用的编码的字符串.
  • DataFrame.to_csv():encoding:字符串,可选.表示要在输出文件中使用的编码的字符串,默认为‘ascii’Python 2和‘utf-8’Python 3.