一:字符编码

  1)什么是字符编码

    将人能识别的字符等高级标识符与计算机所能识别的二进制01进行转化,这之间的交流需要一个媒介,进行两种标识符之间的转化。

    字节的存储方式为八个二进制位

  2)乱码

    存放数据与读取数据采用的字符编码表不一致。

  3)软件的运行

    1.打开软件。

    2.往计算机发送一个打开文件的指令,来打开文件,发送到内存。

    3.读取文件数据渲染给用户(python中第三步中逐行解释打开的文件内容,存取编码不一致则无法正常解释,程序崩溃),将执行的结果展示给用户。

  4)python代码中的文件头

    必须有的格式为encoding:编码表名称

    例:encoding:utf-8

  5)万国字符可以和01识别符对应的编码表

    制造一个可以识别万国字符的编码表——unicode编码表

    py2中,默认编码表为:ASCII,没有采用万国编码表unicode

    py3中,默认编码表为:utf-8,采用了玩过编码表unicode

  

  6)unicode和utf-8的关系

    unicode和utf-8的体现方式不同,采用的都是同一张unicode编码表

    unicode:用两个字节存储汉字,用两个字节存储英文字母,缺点是当文件内容较多时,占用的存储空间更大,优点是读取效率极高。

    utf-8:用三到六个字节存储汉字,用两个字节存储英文字母,缺点是读取效率低,优点是当文件内容较多时,占用的存储空间小。

    存储数据通常用utf-8,传输用utf-8(占用存储空间小,传输效率高),内存中转化为unicode(读取效率极高),再通过utf-8发送给CPU。

  7)三种字符串

    例:s1=u""  unicode字符串

      s2=b""  bytes字节字符串

      s3=r""  原意字符串

  8)编码与解码(重点)

    encode:将unicode字符串转化为bytes字符串

    decode:将bytes字符串转化为unicode字符串

s="hello你好"
n_s=bytes(s,encoding="utf-8")
print(n_s) n_n_s=str(n_s,encoding="utf-8")
print(n_n_s) #两次返回的结果分别为:b'hello\xe4\xbd\xa0\xe5\xa5\xbd'
hello你好

二:文件的基本读取操作

  主操作:r(读取)    w(写入)    a(追加)

  从操作:b(按字节操作)    t(按字符操作)    +(可读可写)

  了解操作:  x(异常写)    u(被遗弃了)

  经过的三个过程:打开→操作→关闭(文件)

  1)文件的写入

    

obj=open("b.txt","w",encoding="utf-8")
info="hello"
obj.write(info)
obj.close()
#当路径中没有该文件时候,会自动创建一个文件
#写入完成后一定要关闭文件打开,释放操作系统对文件的持有

  2)文件的读出

obj=open("b.txt","r",encoding="utf-8")
info=obj.read()
print(info)
obj.close #返回值:hello'
#读取完成后一定要关闭文件打开,释放操作系统对文件的持有

最新文章

  1. js中let和var定义变量的区别
  2. 如何用angularjs给从后台传来数据添加链接
  3. Linux关机和重启命令
  4. SQLSERVER如何查看索引缺失
  5. 【整理】动态加载Web Services
  6. WebKit的CSS扩展(WebKit是私有属性)
  7. redis虚拟机模拟集群,节点,增加多端口命令
  8. wpa_supplicant 连接成功后,如何配置wlan0与br0 协调上网
  9. C#创建XML文件并保存
  10. (转)linux中常用的头文件
  11. 《第一行代码》学习笔记10-活动Activity(8)
  12. xcode - 移动手势
  13. hdu 3449 (有依赖的01背包)
  14. MFC中spin control使用
  15. Hadoop化繁为简(二)—层层递进轻松入门hdfs
  16. 【开源社交系统研发日记】利用 Docker 包 Laradock 服务器部署 Laravel & ThinkSNS+ 等程序实战(多项目)
  17. C语言的字符串操作函数小结
  18. Windows 使用 Visual Studio 编译 caffe
  19. JSON获取地址
  20. python的高级数组之稀疏矩阵

热门文章

  1. jstack调试core文件
  2. windows下配置Groovy
  3. Spring下集成ActiveMQ推送
  4. jQuary总结11:jQuery插件封装---jQuery封装 手风琴 动画插件
  5. mysql 查询条件
  6. Android开发之深入理解NFC(一)
  7. Python 抓取html所有特定元素的方法
  8. 【小梅哥SOPC学习笔记】Altera SOPC嵌入式系统设计教程
  9. 网络安全之iptables防火墙
  10. memcached整理の分布式集群算法