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

时间:2017-12-22 23:39:10

标签: python-3.x unicode utf-8

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

3 个答案:

答案 0 :(得分:6)

Python的built-in function open()有一个可选参数encoding

  

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

类似参数可以在pandas中找到:

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

答案 1 :(得分:3)

确定要读取的文本文件的char编码并不简单,但是可以做到。
请阅读How to determine the encoding of text?

答案 2 :(得分:0)

  

读取文本文件时需要调用解码('utf-8')吗?

您需要尝试阅读文本文件,以确保该文件中的utf-8编码。