Loading... ## 字符编码在python中的应用 运行Python程序的三个步骤: 1. 启动Python解释器 2. 将test.py代码文件从硬盘读入内存,(先读第一行内容). 如下方式解决前两个阶段乱码问题: * 正文开头的声明是指读取时需要采用什么解码表,因为人家写的时候使用这个格式保存的! 但是仅能保证第二阶段不乱吗!!!  * 执行时,读取代码文件采用的解码表声明!这样就不会执行错误  * 这里是设置写编码时存在硬盘中的编码 格式!  3. 解释器读取test内容进行Python语法识别 Python2默认是你用什么编码头, 代码内容里面的字符变量都是编码头格式;python3是默认都是Unicode 所以Python2会导致去不同Print终端(他们的解码是unicode,并不知道你的编码是什么)乱码! *解决办法:用Python3或者,python2定义字符时前面加`x=u'我'`* ### 字符编码的实际情况: 当有一个字符,我想让把他编码成别的格式二进制如gbk,就需要.encode方法,存成bytes类型的gbk,print就不会告诉显示终端让他转换成gbk格式字符串,因为类型是bytes了,这样终端不会画出字符,而是他的bytes。   ## 文件的操作  ::盲点::   ::盲点:: 所以不关闭的情况下,与a模式一样;  ::盲点::  读重复:  ::盲点::f.write 与 f.writelines 区别 f.write(‘hello’) :一次写入 f.writelines(‘hello’):遍历每个字母写入,写了5次 展示结果一样~ ### 文件高阶操作 * *f.flush* 强行直接写入硬盘  * ::盲点::  * 字符个数:hello你好啊 有八个字符;bytes模式需要decode才能看到字符  * f.truncate(6) 这里是指字节数,哪怕是t模式; *必须是可写的模式,否则无法修改内容!*  * 指针移动到文件开头,取6个字节,剩下的抛弃 * *f.seek()* *f.tell()* -> 字节  tell没有相对位置,只能参照文件开头 举例 :tell等于8  倒着取:  ::重点::  注意:seek的 1.2模式只能在b模式下使用 监控log.txt的日志更新,一跟新就打印到终端 (图中有误,是log.txt)  ### 文件内容的修改 ::重要:: 1. 方式一,::内存使用不能达到很高!::可以浏览内容全貌  2. 方式二,::硬盘使用永远不能达到90%以上:: 要预先知道修改规则,才能修改,因为无法看到全貌  ### 做错 #### 局部变量与全局变量问题 1. if 里面定义的变量 是 -> 局部变量! 我把执行函数写在了if 外面!  2. 读文件,记得检查文件是否存在; 避免报错,try要在with open外面;我写到了里面:  3. 注意! 我就加了gloable! 他是重新开辟变量空间!不是元素内容 修改格式: 要先添加声明!!!!  #### Json模块遇到的问题,之前沙河商城没有问题是因为对每行遍历: * json在写入文件时,不能加入任何其他字符,例如\n,否则读的时候读到会报错!!!!!!!!  * json读文件,如果为空,会报错! 记得加Except  这么写就会报错!!!!!  这么写就不会报错! 3. 转账支持小数,记得把字符串转成float类型!  © 允许规范转载