今日内容:

  • 1.字符编码

  • 2.字符与字节

  • 3.文件操作

一、字符编码

  1. 了解:
  2. cpu:将数据渲染给用户
  3. 内存:临时存放数据,断电消失
  4. 硬盘:永久存放数据,断电后不消失

1.1 什么是编码?

  1. 人类能够识别的是字符等高级标识符,电脑只能识别0,1组成的标识符,要完成人与机器之间的交互,一定要一个媒介进行转化

1.2 文件出现乱码的原因

  1. 存数据与读数据采用的编码表不一致

1.3 软件打开文件读取数据的流程

  1. 1.打开文件
  2. 2.往计算机发送一个打开文件的指令,来打开文件
  3. 3.读取数据渲染给用户

1.4 Python解释器打开py文件

  1. 1.打开软件(Python解释器)
  2. 2.往计算机发送一个打开文件的指令,来打开文件
  3. 3.逐行解释打开的文件内容(若存取编码不一致,则无法正常解释,程序崩溃),将执行结果展示给用户
  4. 解释失败的原因:
  5. py2默认按ASCII来解释文件内容
  6. py3默认按utf-8来解释文件内容

1.5 设置默认编码

  1. py文件头:
  2. # encoding:编码表 ( # coding:编码表 )
  3. 功能:告诉Python解释器按照什么编码来解释内容

1.6 编码解码

  1. s1 = u'123' # unicode 字符串,默认字符串
  2. s2 = b'123' # 字节字符串
  3. s3 = r'12\n3' # 原义字符串:不对字符串做任何操作
编码与解码:
  1. s ='154呵呵'
  2. s1 = bytes(s, encoding='utf-8') # 编码
  3. print(s1)
  4. print(b'\xe4\xbd\xa0\xe5\xa5\xbd'.decode('utf-8')) # 解码
  1. 编码表的发展史
  2. 1.ASCII
  3. 字母、数字、英文符号与计算机0,1标识符的对应关系
  4. 2.各国语言的编码表
  5. 中国:GB2312GBKGB18030 先后出现的汉字编码表
  6. 日本:shift_JIS
  7. 韩国:Euc_kr
  8. 3.通用的编码表
  9. 制造一个可以完成万国字符与计算机0,1标识符的对应关系的编码表
  10. 编码表:Unicode
  11. py2ASCII,没有用Unicode,因为py2出生的比Unicode还早
  12. py3utf-8,也就是可变长的Unicode表,本质是一样的
  13. 思考:UnicodeUTF-8是什么关系?
  14. 二者关系:
  15. unicodeutf-8采用的是一张unicode编码表,utf-8unicode编码表体现方式,变长存储数据
  16. Unicode:用2个字节来存储汉字,用2个字节来存储英文字母,占有空间较多,读取效率极高
  17. UTF-8:用3-6个字节来存储汉字,用1个字节来存储英文字母,占有空间较少,读取效率低
  18. 总结:内存都是按Unicode存储数据,硬盘和CPU采用UTF-8来存取数据

二.字符与字节

2.1 字符

  1. 通常意义中使用的记号,抽象意义上的符号。像‘1’,‘人’,‘a’等
  2. ASCII码表中,标点、符号、数字、大小写字母都占一个字节
  3. unicode表中,所有字符都占两个字节

2.2 字节(Byte)

  1. 1个字节表示的是 8 位二进制(0,1

三.文件操作

详解文件操作见 [ Python 入门基础 7 --文件操作 ] (https://www.cnblogs.com/xt12321/p/10609499.html)
  1. 文件:硬盘中一块存储空间(虚拟的文件)
  2. 文件操作:根据文件名来操作硬盘的那块存储空间,读 read write

3.1 使用文件的三个步骤

  1. 1.打开文件
  2. 变量名 = 文件空间
  3. 文件路径 操作模式(读/写)编码
  4. f = open('a.txt','r',encoding = 'utf-8')
  5. 2.操作文件
  6. data = f.read(3) # 将所有的内容读取出来,如果设置读取长度,按规定长度读取数据
  7. print(data)
  8. # f.readline() # 一次读取一行内容
  9. # f.readlines() # 一次性全部读取出来
  10. 3.关闭文件
  11. f.colse() # 释放操作系统对文件的持有,变量f还被应用程序持有

3.2 文件操作模式

  1. 主模式:r:读 w:写 a:追加
  2. 从模式:b:按字节操作 t:按字符操作 +:可读可写
  3. 了解:x:异常写 U:被遗弃了
  4. # 基础写
  5. # 文件不存在:会新建文件,再操作文件
  6. # 文件存在:先清空文件,再操作文件
  7. w = open('b.txt', 'w', encoding='utf-8')
  8. w.write('4567')
  9. w.close

Python 入门基础6 --字符编码、文件操作1的更多相关文章

  1. python开发基础之字符编码、文件处理和函数基础

    字符编码 为什么要有字符编码? 字符编码是为了让计算机能识别我们人写的字符,因为计算机只认识高低电平,也就是二进制数"0","1". 一个文件用什么编码方式存储 ...

  2. python字符编码-文件操作

    字符编码 字符编码历史及发展 为什么有字符编码 ''' 原因:人们想要将数据存入计算机 计算机的能存储的信息都是二进制的数据 内存是基于电工作的,而电信号只有高低频两种,就用01来表示高低电频,所以计 ...

  3. python入门(八):文件操作

    1.数据的保存: 1) 内存:常用的变量都是在内存里面的 缺点:关机或进程死掉数据丢失 解决方法:将数据保存至文件中 2 )文件:文本内容.二进制的文件内容 3 )数据库:保存    2.读文件: 1 ...

  4. python第二周数据类型 字符编码 文件处理

    第一数据类型需要学习的几个点: 用途 定义方式 常用操作和内置的方法 该类型总结: 可以存一个值或者多个值 只能存储一个值 可以存储多个值,值都可以是什么类型 有序或者无序 可变或者不可变 二:数字整 ...

  5. Python开发基础-Day5-字符编码、文件处理和函数基础(草稿)

    字符编码 为什么要有字符编码? 字符编码是为了让计算机能识别我们人写的字符,因为计算机只认识高低电平,也就是二进制数"0","1". 一个文件用什么编码方式存储 ...

  6. 第二篇.2、python基础之字符编码

    一 了解字符编码的知识储备 一 计算机基础知识 二 文本编辑器存取文件的原理(nodepad++,pycharm,word) #1.打开编辑器就打开了启动了一个进程,是在内存中的,所以,用编辑器编写的 ...

  7. Python入门基础学习 一

    Python入门基础学习 一 Python下载及安装 下载地址:https://www.python.org/,选择最新的版本下载 稍等一会,安装完成. 简单语句 从idle启动Python:IDLE ...

  8. python之旅:字符编码

    一 了解字符编码的知识储备 一 计算机基础知识 知识储备:cpu.内存.硬盘 二 文本编辑器存取文件的原理(nodepad++,pycharm,word) #1.打开编辑器就打开了启动了一个进程,是在 ...

  9. Python入门基础学习 二

    Python入门基础学习 二 猜数字小游戏进阶版 修改建议: 猜错的时候程序可以给出提示,告诉用户猜测的数字偏大还是偏小: 没运行一次程序只能猜测一次,应该提供多次机会给用户猜测: 每次运行程序,答案 ...

随机推荐

  1. CSAPP lab2 二进制拆弹 binary bombs phase_2

    给出对应于7个阶段的7篇博客 phase_1  https://www.cnblogs.com/wkfvawl/p/10632044.htmlphase_2  https://www.cnblogs. ...

  2. 《Linux内核设计与实现》第一、二章学习笔记

    <Linux内核设计与实现>第一.二章学习笔记 姓名:王玮怡  学号:20135116 第一章 Linux内核简介 一.关于Unix ——一个支持抢占式多任务.多线程.虚拟内存.换页.动态 ...

  3. ThinkPHP框架知识(比较全的知识)

    php框架 一.真实项目开发步骤: 多人同时开发项目,协作开发项目.分工合理.效率有提高(代码风格不一样.分工不好) 测试阶段 上线运行 对项目进行维护.修改.升级(单个人维护项目,十分困难,代码风格 ...

  4. Android开发环境的发展演变调研

    Android开发环境的发展演变调研 前几年比较多的方法是用JDK+eclipse+ADT,该方法除了要配置JDK的路径之外, 还要在eclipse里面打开SDK Manage进行相应的操作.不过近两 ...

  5. [2017BUAA软工]提问回顾

    原博客链接 原问题1:有没有系统的方法来提高一开始的文档的设计后的质量呢 在之前的OO课程上,我已经深刻领会到了设计的重要性,而且在这次的团队开发中,我也是负责从需求分析到代码设计的转换,所以对设计这 ...

  6. PHP随机函数rand()、mt_rand()、srand()、mt_srand() 的区别

    1.生成随机数发生器种子的函数 srand(). mt_srand() 区别:mt_srand()  比 srand() 更好的生成随机数发生器种子 定义: void srand([int $seed ...

  7. Docker(二十六)-Docker Compose编排容器

    1. 前言 Docker Compose 是 Docker 容器进行编排的工具,定义和运行多容器的应用,可以一条命令启动多个容器. 使用Compose 基本上分为三步: Dockerfile 定义应用 ...

  8. 【版本管理】git分支管理

    创建与合并分支: 首先,我们创建dev分支,然后切换到dev分支: git checkout -b dev,命令加上-b参数表示创建并切换, 相当于以下两条命令: git branch dev: gi ...

  9. spring中的传播性 个人认为就是对方法的设置 其作用能传播到里面包含的方法上

    spring中的传播性 个人认为就是对方法的设置 其作用能传播到里面包含的方法上

  10. win10用vncviewer远程登陆ubuntu桌面

    一:安装Ubuntu的服务端桌面环境 # 安装xrdpsudo apt-get install xrdp # 安装xfce4sudo apt-get updatesudo apt-get instal ...