一.文件操作
对文件的操作分三步:
1、打开文件获取文件的句柄,句柄就理解为这个文件
2、通过文件句柄操作文件
3、关闭文件。
1.文件基本操作:
- f = open(‘file.txt‘,‘r‘) #以只读方式打开一个文件,获取文件句柄,如果是读的话,r可以不写,默认就是只读,
- 在python2中还有file方法可以打开文件,python3中file方法已经没有了,只有open
- frist_line = f.readline()#获取文件的第一行内容,返回的是一个list
- print(frist_line)#打印第一行
- res = f.read()#获取除了第一行剩下的所有文件内容,文件句柄发生了变化
- print(res)
- f.close()#关闭文件
2.文件打开模式:
r:只读,不加模式默认为r
w:只写,[不可读,不存在则创建,存在则删除内容]
a:追加,[不可读,不存在则创建,存在则只追加内容]
"+" 表示可以同时读写某个文件
r+ :读写--可读、可写、可追加,如果打开的文件不存在的话,会报错
w+ :写读--先创建文件,再写(在原文件上的修改都是覆盖操作)
a+ :追加读--默认打开句柄在末尾,读取需先seek(0)指定位置,一写句柄就到末尾了
#r和w,seek指定句柄可以覆盖修改,a+指定句柄也是追加
"U"表示在读取时,可以将 \r \n \r\n自动转换成 \n (与 r 或 r+ 模式同使用)
rU
r+U
# windows上换行符为 \r\n
"b"表示处理二进制文件
rb:二进制文件读
wb:二进制文件写
ab:追加二进制
# 文件存在硬盘上都是二进制,前边说encoding=‘utf-8‘是指把二进制转换成utf-8编码打开,
# 而“b”是指,不用转换编码,我直接读取二进制
3.文件操作:
f = open("1.txt", ‘r‘, encoding="utf-8")
# encoding="utf-8",utf-8编码打开文件,windows下默认gbk打开
f.readline() # 读一行,字符串
f.readable() # 判断文件是否可读f.writable() # 判断文件是否可写f.encoding() # 打印文件的编码f.read() # 读取文件句柄到结束所有内容,大文件时不要用,因为会把文件内容都读到内存中f.readlines() # 读取文件所有内容,返回一个list,元素是每行的数据,大文件时不要用
f.write("天安门") # 写入内容,r和w模式,为句柄处覆盖写入,a模式写到最后f.writelines([‘zhangsan‘],[‘李四‘]) #将一个列表写入文件中
f.flush() # 强制刷新(默认缓冲区满了存入磁盘)
f.close() # 文件关闭
f.closed() # 判断文件是否关闭
f.read(5) # 读取5个字符
f.tell() # 查看文件句柄位置。按照字符计数
f.seek(0) # 移动文件句柄到第0个字符位置
f.encoding # 文件编码
f.truncate() # 什么不写清空文件
f.truncate(10) # r模式截断出前10个字符,其他模式还是清空大文件时,读取文件高效的操作方法:用上面的read()和readlines()方法操作文件的话,会先把文件所有内容读到内存中,这样的话,内存数据一多,非常卡,高效的操作,就是读一行操作一行,读过的内容就从内存中释放了f = open(‘file.txt‘)for line in f: # f 变成了迭代器 print(line) # 判断行的话,需自己加个计数器
时间: 2024-10-26 09:11:02