day07----字符编码解码、文件操作(1)
字符编码:
- 什么是字符编码?
字符编码是将人识别的字符转换成计算机能识别的二进制字符(01),转换的规则就是编码表。
人能识别的字符串 与 计算机能识别的二进制字符 两者之间对应关系构成的结构称为:编码表
- ASCII码: 字母、数字、英文符号与计算机01标识符的对应关系
- 中国(研究汉字与01标识符之间关系):GB2312---->GBK----->GB18030
- 日本:shift_JIS
- 韩国:Euc-Kr
- 万国码(unicode): 目的是创造出一个可以完成各国字符与计算机的01标识符对应的编码表——————>UTF-8
- 注意:
- python2 中 使用的是 ASCII码,原因是在python2 诞生之前,没有万国码
- python3中使用的是UTF-8,采用万国编码来解释文本内容
- UTF-8 与unicode关系:
- unicode 是用两个字节存储汉字,也是用两个自己存储英文字符的,(长度不可变)占用空间较多,但是读取效率高。
- UTF-8是用三到六个字节存储汉字,用一个字节来存储英文字符的,(长度可变)占用空间较小,但是读取效率较低。
- unicode 与UTF-8都是采用一张编码表,UTF-8是 unicode的体现方式(变长传输,提高传输效率),由于多数数据都是以英文形式存在,所以UTF-8所占空间更小,传输速度更快。
- 乱码问题:本质上存数据与读取的数据采用的编码表不同。
- 理解文件传输过程中的字符编码的变化:
- 在硬盘中,文件可以以各种形式的编码来存储,在传输过程中,即在硬盘往内存中传输文件的过程中,文件都是以UTF-8编码形式传输的,读取到内存后,内存中存储数据是采用的是unicode,然后由内存读到cpu 过程中,也是UTF-8编码形式传输的,读到cup的文件的编码形式也就是UTF-8。
- 编码与解码:
s1 = u'abc你好\n不好' # 万国字符串
print(s1)
s2 = b'abc23\xb7\xb7' # 字节字符串
print(s2)
s3 = r'abc你好\n不好' # 原义字符串
print(s3)
# 编码与解码:
s = '123呵呵'
b = bytes(s, encoding='utf-8')
n_b = str(b, encoding='utf-8')
n_b1 = str(b, encoding='GBK')
print(b, n_b, n_b1) # 将u字符串编码成b字符串
print(u'你好'.encode('utf-8')) # 将b字符串解码成u 字符串
print(b'123\xe5\x91\xb5\xe5\x91\xb5'.decode('utf-8'))
文件操作:
计算机中的文件:本质上是硬盘上存储的一块空间的虚拟文件
文件操作:根据文件名来操作硬盘中的存储空间的虚拟文件,操作方式有:读(read)写(write)
操作文件的流程: 打开文件——————操作文件(读写)———————关闭文件
- 基本读写操作:
# 一使用文件的三步骤:
# 1.打开文件
# 变量名 = 文件空间
# 文件路径 操作模式(读|写) 编码
f = open('123.txt', 'r', encoding='utf-8') # 此处路径是相对路径,因为在同一个文件夹下的操作
# 2.操作文件
data = f.read(10) # 将所有内容读取出来,如果设置读取长度,按照规定长度读取数据 # 一行一行读取
line = f.readline()
print(line)
lines = f.readlines()
print(lines)
print(data) 按行一次性全部读出
l = []
for line in f:
# print(line)
l.append(line)
print(l) set1 = set()
for line in f:
# print(line)
set1.add(line)
print(set1) # 3.关闭文件
f.close() # 释放操作系统对文件的持有,变量f还被应用程序持有 # del f # 不需要该操作,系统自动回收
# 基础写
# 文件不存在:会新建文件,再操作文件
# 文件存在:先清空文件,再操作文件
w = open('b.txt', 'w', encoding='utf-8')
w.write('')
w.close()
day07----字符编码解码、文件操作(1)的更多相关文章
- Python之字符编码与文件操作
目录 字符编码 Python2和Python3中字符串类型的差别 文件操作 文件操作的方式 文件内光标的移动 文件修改 字符编码 什么是字符编码? ''' 字符编码就是制定的一个将人类的语言的字符与二 ...
- Python-字典、集合、字符编码、文件操作整理-Day3
1.字典 1.1.为什么有字典: 有个需求,存所有人的信息 这时候列表就不能轻易的表示完全names = ['stone','liang'] 1.2.元组: 定义符号()t = (1,2,3)tupl ...
- DAY07、字符编码和文件操作
一.字符编码 1.什么是字符编码? 人类能识别的是字符等高级标识符,电脑只能识别0,1组成的标识符,要完成人与机器之间的信息交流, 一定需要一个媒介,进行两种标识符的转化(两 ...
- Python 字符编码及其文件操作
本章节内容导航: 1.字符编码:人识别的语言与机器机器识别的语言转化的媒介. 2.字符与字节:字符占多少个字节,字符串转化 3.文件操作:操作硬盘中的一块区域:读写操作 注:浅拷贝与深拷贝 用法: d ...
- Python全栈开发之路 【第三篇】:Python基础之字符编码和文件操作
本节内容 一.三元运算 三元运算又称三目运算,是对简单的条件语句的简写,如: 简单条件语句: if 条件成立: val = 1 else: val = 2 改成三元运算: val = 1 if 条件成 ...
- DAY7 字符编码和文件操作
一.软件与python解释器打开文件的方法 1.软件打开文件读取数据的流程: 1. 打开软件 2. 往计算机发生一个打开文件的指令,来打开文件 3. 读取数据渲染给用户(存取编码不一致:乱码) 2.p ...
- Day 07 字符编码,文件操作
今日内容 1.字符编码:人识别的语言与机器识别的语言转换的媒介 2.字符与字节:字符占多少字节,字符串转换 3.文件操作:操作硬盘的一块区域 字符编码 重点:什么是字符编码 人类能识别的字符等高级标识 ...
- Python 入门基础6 --字符编码、文件操作1
今日内容: 1.字符编码 2.字符与字节 3.文件操作 一.字符编码 了解: cpu:将数据渲染给用户 内存:临时存放数据,断电消失 硬盘:永久存放数据,断电后不消失 1.1 什么是编码? 人类能够识 ...
- python基础——6(字符编码,文件操作)
今日内容: 1.字符编码: 人识别的语言与机器识别的语言转化的媒介 ***** 2.字符与字节: 字符占多少字节,字符串转化 *** 3.文件操作: 操作硬盘中的一块区域:读写操作 ...
- python字符编码与文件操作
目录 字符编码 字符编码是什么 字符编码的发展史 字符编码实际应用 编码与解码 乱码问题 python解释器层面 文件操作 文件操作简介 文件的内置方法 文件的读写模式 文件的操作模式 作业 答案 第 ...
随机推荐
- 《JavaScript高级程序设计》笔记:引用类型(五)
Object类型 创建object实例方法有两种.第一种方法使用new操作符后跟object构造函数.如下: var person=new Object(); person.name="Ni ...
- Android--手势及触摸事件的注意点(一)
实现onInterceptTouchEvent方法可以用来拦截父ViewGroup传递下来的所有触屏事件,可以将所有触屏事件交由此ViewGroup自身的onTouchEvent来处理,也可以继续传递 ...
- Spring Data Redis 让 NoSQL 快如闪电(2)
[编者按]本文作者为 Xinyu Liu,文章的第一部分重点概述了 Redis 方方面面的特性.在第二部分,将介绍详细的用例.文章系国内 ITOM 管理平台 OneAPM 编译呈现. 把 Redis ...
- 第一次使用VS Code时你应该知道的一切配置
前言 本文最新内容将在GitHub上实时更新. VS Code 本来是前端人员专用,但由于它实在是太好用了,于是,各种开发方向的码农也正在用 VS Code 作为他们的主力编程工具.甚至是一些写作的同 ...
- mssql sqlserver 使用sql脚本检测数据表中一列数据是否连续的方法分享
原文地址:http://www.maomao365.com/?p=7335 摘要: 数据表中,有一列是自动流水号,由于各种操作异常原因(或者插入失败),此列数据会变的不连续,下文将讲述使用sql ...
- Linux学习历程——Centos 7 ps命令基础
一.ps命令介绍 ps命令是Process Status的缩写,用于查看系统进程状态,ps命令输出值非常多,通常结合管道符使用. 二.实例 1.我们直接输入ps命令,不加任何参数. 可以看到默认输出4 ...
- windows 解放鼠标快捷键
win+ 调整某个窗口的放大缩小靠边站,最小化 窗口间的切换alt+tablealt (按住)+table(一下)+ 上下左右 alt(一下)+table(一下)相邻切换 alt(按住)+tables ...
- IDEA: Call Hierarchy
在日常开发中,查看某个方法.字段可能被用在哪些地方.这个是个很常见的操作. 例如,在使用Eclipse时,选择方法后,右键菜单里选择 show call hierarchy,即可查看有哪些地方调用了这 ...
- SQLServer数据表用法
数据表定义 数据表(或称表)是数据库最重要的组成部分之一,数据库中以表为组织单位存储数据,数据库只是一个框架,数据表才是其实质内容.数据库管理工具中可以显示数据库中的所有数据表,数据表是数据库中一个非 ...
- MySQL知识总结(一)安装与配置(Linux CentOS)
1 安装 环境 CentOS yum install -y mysql-server mysql mysql-deve service启动 1.1 启动 service mysqld start 1. ...