# Author Richard_Kong # !/usr/bin/env python # --*-- encoding:utf-8 --*-- import time """ 对文件的基本操作流程: 1、打开文件 并得到文件句柄赋值发给变量 2、通过句柄对文件进行操作 3、关闭文件 对文件的基本操作: 文件的读取 文件的写入 文件的循环读 文件的光标 """ # f = open('lyrics',encoding='utf-8') # 一次性读取所有数据,但是当数据量过大的时候就不行了 # for line in f: # print(line) # data = f.read() # print(data) # f.close() # 打开文件,返回文件句柄,句柄包括文件的大小 名称 起始位置 ''' f = open('lyrics',buffering=1,encoding='utf-8') data = f.read()# 一次性将所有文件读取完了,里面有类似文件光标的位置记录 data2 = f.read()# 从上面的最后读取,但是后面没有东西了,读取的数据为空 print(data) print("-------------------data2-----------------",data2) #f.write("jhajbajhafjdbhfadflkjadf") # 文件不可写,必须在打开的时候 指定文件是可读的 还是可写的 ''' """mode 为w时 是创建一个新的文件,""" # f = open('lyrics',mode='r+',encoding='utf-8') # f.write('我爱北京天俺们,天安门上太阳升') # '''此时的光标在文件末尾,所以读取出来的数据为空''' # time.sleep(3) # data = f.read() # print(data) # # f.close() f = open('lyrics',mode='r+',encoding='utf-8') """读取前五行""" """readlines 将整个文件内容返回列表""" for line in f.readlines(): print(line.strip()) print("-------------------") for i in range(5): print(f.readline()) f.close() """当文件比较大的时候怎么办呢,我们不能将文件全部读出,这样会占用比较大的内存""" f = open('lyrics',mode='r+',encoding='utf-8') print(f.tell())#打印文件的光标 print("-------高级的读取方式,此时f为迭代器-------") for line in f: print(line.strip()) f.seek(0) print(f.tell()) print(f.encoding)# 打印文件的编码 """f.flush() 刷新指的是从内存中存储到硬盘中"""
后面会右博客阐示自己对迭代对象、迭代器、生成器、容器的理解与区别