Python 入门基础6 --字符编码、文件操作1
今日内容:
1.字符编码
2.字符与字节
3.文件操作
一、字符编码
了解:
cpu:将数据渲染给用户
内存:临时存放数据,断电消失
硬盘:永久存放数据,断电后不消失
1.1 什么是编码?
人类能够识别的是字符等高级标识符,电脑只能识别0,1组成的标识符,要完成人与机器之间的交互,一定要一个媒介进行转化
1.2 文件出现乱码的原因
存数据与读数据采用的编码表不一致
1.3 软件打开文件读取数据的流程
1.打开文件
2.往计算机发送一个打开文件的指令,来打开文件
3.读取数据渲染给用户
1.4 Python解释器打开py文件
1.打开软件(Python解释器)
2.往计算机发送一个打开文件的指令,来打开文件
3.逐行解释打开的文件内容(若存取编码不一致,则无法正常解释,程序崩溃),将执行结果展示给用户
解释失败的原因:
py2默认按ASCII来解释文件内容
py3默认按utf-8来解释文件内容
1.5 设置默认编码
在py文件头:
# encoding:编码表 ( # coding:编码表 )
功能:告诉Python解释器按照什么编码来解释内容
1.6 编码解码
s1 = u'123' # unicode 字符串,默认字符串
s2 = b'123' # 字节字符串
s3 = r'12\n3' # 原义字符串:不对字符串做任何操作
编码与解码:
s ='154呵呵'
s1 = bytes(s, encoding='utf-8') # 编码
print(s1)
print(b'\xe4\xbd\xa0\xe5\xa5\xbd'.decode('utf-8')) # 解码
编码表的发展史
1.ASCII
字母、数字、英文符号与计算机0,1标识符的对应关系
2.各国语言的编码表
中国:GB2312、GBK、GB18030 先后出现的汉字编码表
日本:shift_JIS
韩国:Euc_kr
3.通用的编码表
制造一个可以完成万国字符与计算机0,1标识符的对应关系的编码表
编码表:Unicode表
py2:ASCII,没有用Unicode,因为py2出生的比Unicode还早
py3:utf-8,也就是可变长的Unicode表,本质是一样的
思考:Unicode与UTF-8是什么关系?
二者关系:
unicode与utf-8采用的是一张unicode编码表,utf-8是unicode编码表体现方式,变长存储数据
Unicode:用2个字节来存储汉字,用2个字节来存储英文字母,占有空间较多,读取效率极高
UTF-8:用3-6个字节来存储汉字,用1个字节来存储英文字母,占有空间较少,读取效率低
总结:内存都是按Unicode存储数据,硬盘和CPU采用UTF-8来存取数据
二.字符与字节
2.1 字符
通常意义中使用的记号,抽象意义上的符号。像‘1’,‘人’,‘a’等
ASCII码表中,标点、符号、数字、大小写字母都占一个字节
unicode表中,所有字符都占两个字节
2.2 字节(Byte)
1个字节表示的是 8 位二进制(0,1)
三.文件操作
详解文件操作见 [ Python 入门基础 7 --文件操作 ] (https://www.cnblogs.com/xt12321/p/10609499.html)
文件:硬盘中一块存储空间(虚拟的文件)
文件操作:根据文件名来操作硬盘的那块存储空间,读 read 写 write
3.1 使用文件的三个步骤
1.打开文件
变量名 = 文件空间
文件路径 操作模式(读/写)编码
f = open('a.txt','r',encoding = 'utf-8')
2.操作文件
data = f.read(3) # 将所有的内容读取出来,如果设置读取长度,按规定长度读取数据
print(data)
# f.readline() # 一次读取一行内容
# f.readlines() # 一次性全部读取出来
3.关闭文件
f.colse() # 释放操作系统对文件的持有,变量f还被应用程序持有
3.2 文件操作模式
主模式:r:读 、 w:写 、a:追加
从模式:b:按字节操作 、 t:按字符操作 、 +:可读可写
了解:x:异常写 、 U:被遗弃了
# 基础写
# 文件不存在:会新建文件,再操作文件
# 文件存在:先清空文件,再操作文件
w = open('b.txt', 'w', encoding='utf-8')
w.write('4567')
w.close
Python 入门基础6 --字符编码、文件操作1的更多相关文章
- python开发基础之字符编码、文件处理和函数基础
字符编码 为什么要有字符编码? 字符编码是为了让计算机能识别我们人写的字符,因为计算机只认识高低电平,也就是二进制数"0","1". 一个文件用什么编码方式存储 ...
- python字符编码-文件操作
字符编码 字符编码历史及发展 为什么有字符编码 ''' 原因:人们想要将数据存入计算机 计算机的能存储的信息都是二进制的数据 内存是基于电工作的,而电信号只有高低频两种,就用01来表示高低电频,所以计 ...
- python入门(八):文件操作
1.数据的保存: 1) 内存:常用的变量都是在内存里面的 缺点:关机或进程死掉数据丢失 解决方法:将数据保存至文件中 2 )文件:文本内容.二进制的文件内容 3 )数据库:保存 2.读文件: 1 ...
- python第二周数据类型 字符编码 文件处理
第一数据类型需要学习的几个点: 用途 定义方式 常用操作和内置的方法 该类型总结: 可以存一个值或者多个值 只能存储一个值 可以存储多个值,值都可以是什么类型 有序或者无序 可变或者不可变 二:数字整 ...
- Python开发基础-Day5-字符编码、文件处理和函数基础(草稿)
字符编码 为什么要有字符编码? 字符编码是为了让计算机能识别我们人写的字符,因为计算机只认识高低电平,也就是二进制数"0","1". 一个文件用什么编码方式存储 ...
- 第二篇.2、python基础之字符编码
一 了解字符编码的知识储备 一 计算机基础知识 二 文本编辑器存取文件的原理(nodepad++,pycharm,word) #1.打开编辑器就打开了启动了一个进程,是在内存中的,所以,用编辑器编写的 ...
- Python入门基础学习 一
Python入门基础学习 一 Python下载及安装 下载地址:https://www.python.org/,选择最新的版本下载 稍等一会,安装完成. 简单语句 从idle启动Python:IDLE ...
- python之旅:字符编码
一 了解字符编码的知识储备 一 计算机基础知识 知识储备:cpu.内存.硬盘 二 文本编辑器存取文件的原理(nodepad++,pycharm,word) #1.打开编辑器就打开了启动了一个进程,是在 ...
- Python入门基础学习 二
Python入门基础学习 二 猜数字小游戏进阶版 修改建议: 猜错的时候程序可以给出提示,告诉用户猜测的数字偏大还是偏小: 没运行一次程序只能猜测一次,应该提供多次机会给用户猜测: 每次运行程序,答案 ...
随机推荐
- 1-Python3从入门到实战—基础之语法
Python从入门到实战系列--目录 编码格式 默认情况下,Python 3 源码文件以 UTF-8 编码,所有字符串都是 unicode 字符串 # -*- coding=utf-8 -*- 也可以 ...
- 如何花样展示自己的摄影作品?强大的WebGL能力展示
注意:Windows平台推荐使用Edge.Chrome.FireFox,部分浏览器打不开 P.S.慢慢用鼠标在图片上拖拽会感觉更神奇
- 蜗牛慢慢爬 LeetCode 25. Reverse Nodes in k-Group [Difficulty: Hard]
题目 Given a linked list, reverse the nodes of a linked list k at a time and return its modified list. ...
- Alpha冲刺——测试随笔
写在前面 作业链接 测试工作安排 测试模块 用户登录 日常管理模块 项目展示模块 测试计划 用户登录 测试功能 测试项 输入/操作 检验点 预期效果 用户登录 登录动作 点击登录 报错提示 无法登录, ...
- PAT 甲级 1087 All Roads Lead to Rome
https://pintia.cn/problem-sets/994805342720868352/problems/994805379664297984 Indeed there are many ...
- 怎么把焦点放在RichEdit的最后一行
急急急!!!!如何把焦点放在RichEdit的最后一行!! 请高手指点,在线等!!!!当添加到出现滚动条时焦点就不会往下了,怎么把焦点移到最后一行 RichEdit-> Lines-> A ...
- Asp.Net Mvc的几个小问题
突然想到一些小问题,对写代码影响不大,当是又很实用. MVC 中视图中的model的大小写问题,什么时候用大写,什么时候用小写? 所谓强类型视图,就是通过@model指令指明当前Model(属性)的具 ...
- MT【98】三元对称不等式
评:这是一道浙江省省赛题,这里利用对称性,设$x\le y\le z$从而解决了问题.值得注意的是此处三元轮换对称正好也是完全对称,但如果变成一般的$n\ge4$元对称问题时,就不能设大小关系.事实上 ...
- SDOI2017 R2泛做
由于各种原因,在bzoj上我day1的题一题都没过,所以这里就直接贴loj的链接好了. D1T1 龙与地下城 中心极限定理. https://en.wikipedia.org/wiki/Central ...
- 【BZOJ1297】[SCOI2009]迷路(矩阵快速幂)
[BZOJ1297][SCOI2009]迷路(矩阵快速幂) 题面 BZOJ 洛谷 题解 因为边权最大为\(9\),所以记录往前记录\(9\)个单位时间前的.到达每个点的方案数就好了,那么矩阵大小就是\ ...