网站首页 > 技术文章 正文
我们怎么来告诉python解释器不要用它默认的编码方式来读取文件,而是要用我告诉它的编码方式呢?
这时候我们就要给这个python文件,指定一个文件头,修改默认的编码。
指定这个文件头的方式就是,在python文件的首行写# coding:GBK。
# coding:GBK
注意一定要写在首行,因为接下来你所有的代码,都是参照首行指定的编码方式读取,然后转成Unicode编码的。
而且这个文件头负责的是读文件的编码方式,它管不了存文件的编码方式。
真正管存文件编码方式的是编辑器,如果你搞不清楚当初存文件时候用的什么编码,那你就只能蒙了。蒙对了还好,蒙错了就一定会乱码。
现在这个编码方式我指定好了,然后我们再来到命令行试试看。
敲上下方向键,就可以切换上次输入的命令,敲回车。
这个程序就成功运行了。
那我们平时练习的时候也没有指定文件头,为什么也没乱码呢?
还记得我们一开始新建这个test.py文件之后,第一步做了什么吗?我们是把默认的UTF-8改成了GBK。
也就是说pycharm默认就帮我们把文件保存成了UTF-8格式了,而python3默认也是用UTF-8读取文件的。
所以我们平时没有遇到乱码问题,并不是说你解决了乱码问题,而是说你碰巧蒙对了,所以你写的程序兼容性更好,python3可以执行,python2也可以执行,就应该给你的python文件加上一个文件头,指定一下编码方式。
而这个指定的编码方式,就是你当初用什么编码方式存的,这里就应该要指定什么编码方式。
当然这个#后面空格可以加也可以不加,都没问题。
虽然这是注释的语法,但是这样写到首行就不单单是注释了,还有表示文件头的作用。
现在我们就把python程序运行过程中,前两个阶段的乱码问题解决了,只要指定文件头,把读文件的时候用编码方式,指定成你存入硬盘时用的编码方式就可以了。
最后我再和你说一个pycharm很牛B的功能。
Pycharm为了保持一致性,你在文件头写什么,它右下角都会保持一直,你上面写GBK,右下角就会变成GBK。
你可以自己试一下。
猜你喜欢
- 2025-07-27 31、零基础Python到全栈-格式化format
- 2025-07-27 Python web Django快速入门手册全栈版,才2590字,短小精悍
- 2025-07-27 python os.makedirs(),实例详解什么是递归创建目录
- 2025-07-27 零基础Python到全栈-打开文件(怎么从python中打开文件)
- 2025-07-27 Django+Vue:Python Web全栈开发(python vue3)
- 2025-07-27 花了4万多买的python教程全套,现在分享给大家(python全栈)
- 2025-07-27 花了六万多买的python教程全套,现在分享给大家(python全栈)
- 2025-07-27 花了3万多买的python教程全套,现在分享给大家(python全栈)
- 2025-07-27 Python API 开发:从构建到部署的全栈指南 总结
- 289℃Python短文,Python中的嵌套条件语句(六)
- 285℃PythonNet:实现Python与.Net代码相互调用!
- 283℃python笔记:for循环嵌套。end=""的作用,图形打印
- 281℃Python实现字符串小写转大写并写入文件
- 278℃Python操作Sqlserver数据库(多库同时异步执行:增删改查)
- 138℃原来2025是完美的平方年,一起探索六种平方的算吧
- 123℃Ollama v0.4.5-v0.4.7 更新集合:Ollama Python 库改进、新模型支持
- 115℃Python 和 JavaScript 终于联姻了!PythonMonkey 要火?
- 最近发表
- 标签列表
-
- python中类 (31)
- python 迭代 (34)
- python 小写 (35)
- python怎么输出 (33)
- python 日志 (35)
- python语音 (31)
- python 工程师 (34)
- python3 安装 (31)
- python音乐 (31)
- 安卓 python (32)
- python 小游戏 (32)
- python 安卓 (31)
- python聚类 (34)
- python向量 (31)
- python大全 (31)
- python次方 (33)
- python桌面 (32)
- python总结 (34)
- python浏览器 (32)
- python 请求 (32)
- python 前端 (32)
- python验证码 (33)
- python 题目 (32)
- python 文件写 (33)
- python中的用法 (32)