码迷,mamicode.com
首页 > 其他好文 > 详细

字符编码、字符与字节与文件操作

时间:2019-06-15 10:09:09      阅读:75      评论:0      收藏:0      [点我收藏+]

标签:readlines   优点   decode   执行   line   class   abc   关系   模式   

字符编码

'''
CPU:将数据渲染给用户,中央处理器
内存:临时存放数据,断电后消失
硬盘:永久存储数据,断电后还有

乱码:存数据与读数据采用的编码表不一致

软件打开文件读取数据的流程:
1. 打开软件
2. 往计算机发生一个打开文件的指令,来打开文件
3. 读取数据渲染给用户(存取编码不一致:乱码)


python解释器打开py文件
1. 打开软件(python解释器)
2. 往计算机发生一个打开文件的指令,来打开文件
3. 逐行解释打开的文件内容(存取编码不一致,无法正常解释,崩溃),将执行结果展示给用户

解释失败的原因:
py2默认按ASCII来解释文件内容 | py3默认按UTF-8来解释文件内容

文件头:# encoding: 编码表
功能:告诉py解释器按照什么编码来解释文件内容
'''

了解

'''
编码表:
人内识别的字符标识符 与 计算机能识别的01标识符 的对应关系

万国编码:Unicode utf-8
1. 采用的都是Unicode编码表
2. Unicode以定长(2字节)存取数据
3. utf-8以变长(1-6字节)存取数据

'''

重点

'''
unicode与utf-8采用的是一张unicode编码表,utf-8是unicode编码表体现方式,变长存储数据
变长优点:(大量数据都是以英文存在,所以utf-8空间更小)传输速度更快
'''

编码解码

# 原义字符串: 不对字符串内存做任何操作(eg:\n的转化)
# r'abc\nabc'  => 'abc\nabc'

# u'' 之间转化 b''
# 编码:u''.encode('utf-8') | bytes(u'', encode='utf-8')
# 解码:b''.decode('utf-8') | str(b'', encode='utf-8')

文件操作

'''
计算机中的文件:硬盘中一块存储空间(虚拟的文件)
文件操作:根据文件名来操作硬盘的那块存储空间,操作方式 读read 写write
'''
'''
1. 打开文件

2. 操作文件(读:read()  写:write())

3. 关闭文件 *****
'''
# 基础读

# 1、打开文件
# 变量名 = 文件空间
# 文件路径 操作模式(读|写) 编码
f = open('a.txt', 'r', encoding='utf-8')

# 2、操作文件
# data = f.read(3)  # 将所有内容读取出来,如果设置读取长度,按照规定长度读取数据
# print(data)

# 一次读取一行
# line = f.readline()
# print(line)
# line = f.readline()
# print(line)

# 按行一次性全部读出
# lines = f.readlines()
# print(lines)

# 逐步一行一行读取
# l = []
# for line in f:
#     # print(line)
#     l.append(line)
# print(l)

s = set()
for line in f:
    # print(line)
    s.add(line)
print(s)

# 3、关闭文件
f.close()  # 释放操作系统对文件的持有,变量f还被应用程序持有
# 基础写
# 文件不存在:会新建文件,再操作文件
# 文件存在:先清空文件,再操作文件
w = open('b.txt', 'w', encoding='utf-8')
w.write('456')
w.close()

字符编码、字符与字节与文件操作

标签:readlines   优点   decode   执行   line   class   abc   关系   模式   

原文地址:https://www.cnblogs.com/xufengfan/p/11026099.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!