day7 字符编码,文件操作

字符编码避免乱码的核心:怎么编码就怎么解码

#字符--------(翻译过程)------->数字

  #这个过程实际就是一个字符如何对应一个特定数字的标准,这个标准称之为字符编码
utf-8——Unicode(解码 decode)结果是str
Unicode——utf-8(编码,encode)结果是bytes

内存中统一采用unicode,浪费空间来换取可以转换成任意编码(不乱码),硬盘可以采用各种编码,如utf-8,保证存放于硬盘或者基于网络传输的数据量很小,提高传输效率与稳定性。

1、在存入磁盘时,需要将unicode转成一种更为精准的格式,utf-8:全称Unicode Transformation Format,将数据量控制到最精简

2、在读入内存时,需要将utf-8转成unicode
所以我们需要明确:内存中用unicode是为了兼容万国软件,即便是硬盘中有各国编码编写的软件,unicode也有相对应的映射关系,但在现在的开发中,程序员普遍使用utf-8编码了,估计在将来的某一天等所有老的软件都淘汰掉了情况下,就可以变成:内存utf-8<->硬盘utf-8的形式了。

#1、保证不乱吗的核心法则就是,字符按照什么标准而编码的,就要按照什么标准解码,此处的标准指的就是字符编码

#2、在内存中写的所有字符,一视同仁,都是unicode编码,比如我们打开编辑器,输入一个“你”,我们并不能说“你”就是一个汉字,此时它仅仅只是一个符号,该符号可能很多国家都在使用,根据我们使用的输入法不同这个字的样式可能也不太一样。只有在我们往硬盘保存或者基于网络传输时,才能确定”你“到底是一个汉字,还是一个日本字,这就是unicode转换成其他编码格式的过程了

阶段一:启动python解释器
阶段二:python解释器此时就是一个文本编辑器,负责打开文件test.py,即从硬盘中读取test.py的内容到内存中
阶段三:读取已经加载到内存的代码(unicode编码格式),然后执行,执行过程中可能会开辟新的内存空间,比如x="egon"

py3里的字符串是以Unicode的形式存放的

bytes的类型与用途
存放到文件中,基于网络传输

文件操作的类型
r 只读 
光标定在开头,打印后,在打印,没有内容输出
文件不存在
报错
文件存在
读取内容

w 只写 
光标定在开头
文件不存在
创建文件
文件存在
清空内容在写
a 最加写
无内容光标定在开头
有内容光标定在文尾
文件不存在
创建文件
文件存在
接在内容尾继续添加

 

read()读取内容

readline()读取一行的内容

readlines()读取每行内容,以列表的形式返回

import sys

sys

sys.argv

import os 

os.rename 

os.remove

 

拷贝原理

方式一

在内存空间里修改好,然后写入到新文件

占用两份内存空间

 

方式二

新建一个A文件写入到B文件

同时占用了2个文件空间

最后删除A,吧B改成A的名字

 

seek()参数填字节

转载于:https://www.cnblogs.com/shanjinghao/p/8645482.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值