一.字符编码
字符编码表就是一张让字符和二进制对应的表格,而这个制表的过程就是字符编码
了解知识点:
1.内存中使用unicode,兼容万国
2.硬盘中存成什么,就是什么编码
3.中文windows系统,默认gbk
4.从硬盘中读取到内存时,要考虑当时时用什么编码方式保存的,就用什么方式解码
5.存储数据时要注意存储的数据类型,如果使用错误的字符编码,那么数据就会丢失
6.推荐使用utf-8来写文本数据,兼容
步骤: 1.打开文件,得到文件句柄并赋值给一个变量
2.通过句柄对文件进行操作(读,写)
3.关闭文件
f = open('文件路径','读写模式','编码或解码') # 将句柄赋值给变量
data = f.read() # 通过句柄对文件进行操作
f.close() # 关闭文件
两个重要的知识点:
第一:资源回收,如果一个文件被闲置,系统会在一段时间后自动回收但如果短时间内大量文件闲置将导致内存资源被占用,降低开发效率.
第二:保证不乱码的核心其实就是以什么方式编码就以什么方式解码
三.读写模式
从读写上分为三种模式,分别是
r模式:即read模式,用来读取文件内容
w模式:即write模式,用来写入文件内容,每次写入的文件会覆盖原文件
a模式:追加模式,同样写入文件内容不同的是,在不关闭文件的前提下,每次写入的内容会被追加到文件的末尾
从读写内容上又可以分为两种:
b模式:读写内容为二进制,用来读写非文本内容,例如视频,音乐(不能指定编码)
t模式,默认为t模式,读写文本内容,内容即字符(须指定编码)
需要掌握知识点
**\n换行
readline与readlines的区别:readline是读取一行内容,将光标移动到第二行首部
而readlines是读取每一行内容,内容以行为单位,当作元素存放到列表中.
write('内容\n'):需要手动输入\n换行,只能传入一个参数,且必须是字符串
writelines:可以传入列表内是多个字符串
四.文件内光标移动
seek有三种移动方式0,1,2,其中1和2必须在b模式下进行,但无论哪种模式,都是以bytes为单位移动的
五.文件的修改
需要掌握
import os 模块
with open语句,无需手动关闭文件
文件的修改
import os with open('D:\练习\文件处理.py', 'rt') as read_f, open('D:\练习\.文件处理.swap','wt') as write_f: for line in read_f: line = line.replace('egon','dsb') write_f.write(line) os.remove('D:\练习\文件处理.py') os.rename('D:\练习\.文件处理.swap','D:\练习\文件处理.py')
小练习
sum2 = 0 with open('a.txt') as f: data = f.read() info = data.split('\n') for i in info: msg = i.split(' ') money = int(msg[1]) number = int(msg[2]) sum1 = money * number sum2 += sum1 print(sum2)