美文网首页
「Python基础」文件编码

「Python基础」文件编码

作者: 言淦 | 来源:发表于2018-09-06 17:10 被阅读0次

上文-常见的编码集讲到了常见的编码集,本文讲述的是文件编码之间的恩怨纠葛,可以说是上文的延伸。

其实要想理解文件编码,还要将其与系统编码,编译器编码做对比,这样更容易理解。

环境:centos7+Python3.5

系统编码:常见的系统有Windows和Linux系统,Windows的默认编码是GBK,Linux的视情况而定,有可能是UTF-8, 也有可能是ASCII。

>>> import locale
>>> locale.getdefaultlocale() # windows下是cp936
('en_US', 'UTF-8')

编译器编码:在这里指Python编译器的编码

>>> import sys
>>> sys.getdefaultencoding()
'utf-8'

文件编码:如果没指定默认使用系统编码

with open("utf.txt","w",encoding = "utf-8") as f: # 指定了utf-8编码
    f.write(s)

Python文件编码声明:
我们经常在Python文件开头声明: # coding: utf-8, 这是什么意思呢?这其实是告诉编译器用什么编码去解码, 所以这个解码要与你编码一致,不然就会报错。

UnicodeDecodeError 报错复现:

>>> s = '联通'.encode('gbk')
>>> s.decode('utf-8') # 用哪个解码显示哪个报错
Traceback (most recent call last):
File "<stdin&", line 1, in <module&
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc1 in position 0: invalid start byte

参考教程:

公司Python大佬总结给新人的编码原理,看完彻底明白Python编码原理

相关文章

  • Python基础之文件处理(二)

    Python基础文件处理 python系列文档都是基于python3 一、字符编码 在python2默认编码是AS...

  • 第2章 - 基础入门.md

    第2章 基础入门 2.1 Python 中文编码 Python2 Python2 文件如果未指定编码,在执行过程会...

  • 01学习记录Python

    学习记录,欢迎指出错误 Python3基础语法 编码 默认情况下,Python源码文件是以UTF-8编码,所有字符...

  • 「Python基础」文件编码

    上文-常见的编码集讲到了常见的编码集,本文讲述的是文件编码之间的恩怨纠葛,可以说是上文的延伸。 其实要想理解文件编...

  • Lesson 009 —— python 基础语法

    Lesson 009 —— python 基础语法 编码 默认情况下,Python 3 源码文件以 UTF-8 编...

  • Python——文件编码

    编码的演变 Python编码 python2 Python指定编码 在文件头部增加 -*-coding:utf8-...

  • Python教程列表

    Python 基础教程 Python 基础教程Python 简介Python 环境搭建Python 中文编码Pyt...

  • python批量查看修改文件编码

    使用python批量查看文件编码,或者批量修改文件编码 代码 结果 查看文件编码 执行编码转换 再次查看转换后的编码

  • Python教程导航

    Python 教程 Python 简介 Python 环境搭建 Python 中文编码 Python 基础语法 ...

  • 我的python学习笔记-第一天

    这是一个系列文章,用于记录我学习python的笔记。 基础语法 编码 默认情况下,Python 3 源码文件以ut...

网友评论

      本文标题:「Python基础」文件编码

      本文链接:https://www.haomeiwen.com/subject/zvgtgftx.html