#掌握f.read() #读取所有内容,光标移动到文件末尾f.readline() #读取一行内容,光标移动到第二行首部f.readlines() #读取每一行内容,存放于列表中f.write('1111\n222\n') #针对文本模式的写,需要自己写换行符f.write('1111\n222\n'.encode('utf-8')) #针对b模式的写,需要自己写换行符f.writelines(['333\n','444\n']) #文件模式f.writelines([bytes('333\n',encoding='utf-8'),'444\n'.encode('utf-8')]) #b模式#了解f.readable() #文件是否可读f.writable() #文件是否可读f.closed #文件是否关闭f.encoding #如果文件打开模式为b,则没有该属性f.flush() #立刻将文件内容从内存刷到硬盘f.name
一、文件内指针的移动:
****大前提:文件内指针的移动是Bytes为单位的,唯独t模式下的read读取内容个数是以字符为单位
# f.seek(指针移动的字节数,模式控制): 控制文件指针的移动
# 模式控制:# 0: 默认的模式,该模式代表指针移动的字节数是以文件开头为参照的# 1: 该模式代表指针移动的字节数是以当前所在的位置为参照的# 2: 该模式代表指针移动的字节数是以文件末尾的位置为参照的# 强调:其中0模式可以在t或者b模式使用,而1跟2模式只能在b模式下用二、文件的修改
须知一:
# 硬盘空间无法修改,硬盘中的数据更新都是用新的内容覆盖旧的内容# 内存控制可以修改# with open('a.txt','r+t',encoding='utf-8') as f:# f.seek(4,0)# print(f.tell())# f.write('我擦嘞')# 须知二:
# 文件对应的是硬盘空间,硬盘不能修改应为文件本质也不能修改,# 我们看到文件的内容可以修改,是如何实现的呢?# 大的的思路:将硬盘中文件内容读入内存,然后在内存中修改完毕后再覆盖回硬盘# 具体的实现方式分为两种:# 1. 将文件内容发一次性全部读入内存,然后在内存中修改完毕后再覆盖写回原文件# 优点: 在文件修改过程中同一份数据只有一份# 缺点: 会过多地占用内存# with open('db.txt',mode='rt',encoding='utf-8') as f:# data=f.read()# with open('db.txt',mode='wt',encoding='utf-8') as f:
# f.write(data.replace('kevin','SB'))# 2. 以读的方式打开原文件,以写的方式打开一个临时文件,一行行读取原文件内容,修改完后写入临时文件...,删掉原文件,将临时文件重命名原文件名
# 优点: 不会占用过多的内存# 缺点: 在文件修改过程中同一份数据存了两份三、函数的初步了解
1. 什么是函数
具备某一功能的工具->函数 事先准备工具的过程--->函数的定义 遇到应用场景,拿来就用---->函数的调用函数分类两大类:
(1). 内置函数(2) 自定义函数
2. 为何要用函数
1. 代码冗余2. 可读性差3. 可扩展性差3. 如何用函数
原则:必须先定义,再调用定义函数的语法:
def 函数名(参数1,参数2,...): """文档注释""" code1 code2 code3 .... return 返回值 调用函数的语法: 函数名(值1,值2,...)