python学习day6(文件操作一:简单的读写)
#文件(记住每次操作都要关闭文件.close()) #简单的读取操作 data=open("YESTERDAY").read() #打开文件读出整个文件的内容 print(data) 如果报错GBK,则修改为data=open("YESTERDAY",coding="utf-8").read() #文件操作 # -*-coding:utf-8 -*- '''data=open("YESTERDAY").read() #打开文件(若文件不存在,自动创建一个新的文件) print(data) ''' #读文件(此时相当于把整个文件已经读到内存中了) f = open("YESTERDAY",'r') #文件句柄(简单记为文件对象) data=f.read() print(data) '''data2=f.read() print(data2) #此时data2变量没有输出,理解为文件指针停留在第一个变量读取完文件后停留在末尾, #data2读取的时候并没有回到文件的最开始位置,所以读不到文件内容 ''' #写'w',创建一个文件,覆盖原来存在的文件 f = open("YESTERDAY2",'w') f.write("这是我啊\n") f.write("sss\n") f.close() #a=append写的时候是追加到文件末尾的方式 f = open("YESTERDAY2",'a') f.write("四十四") f.close() #指定行数输出文件内容 #readline() 输出一行文件内容 f = open("YESTERDAY",'r') print(f.readline()) #每次读一行 for i in range(5): #用for循环读取前5行 print(f.readline()) #readlines() 将文件内容转换为列表形式 f = open("YESTERDAY",'r') for index,line in enumerate(f.readlines()): #用enumerate给予下标,并第十行不打印文件内容 if index==9: print("-------------") continue print(line.strip()) #strip是清除默认换行 #内存中每次只存在文件中的一行数据(较为高效的方法)(较为常用) count=0 f=open("YESTERDAY",'r') for line in f: #f相当于迭代器 if count==9: print("-------") count+=1 continue print(line.strip()) count+=1 #tell()获取当前文件指针位置(以字符计数的方式返回字符数) #f.seek()将文件指针移到某处,括号中可以填写字符数,表示将指针移到指定字符数处 f=open("YESTERDAY",'r') print(f.tell()) #此时输出到屏幕是0 print(f.readline()) print(f.tell()) #此时值不为0 f.seek(0) #将文件指针移到文件首处 print(f.readline()) '''此时文件又可以进行第二次读,若没有seek()函数, 第二次读出的是空内容,因为文件指针在进行第一次读完后位于文件末尾处了。 ''' #f.encoding 查看文件编码格式 #f.flush() 实时刷新文件数据到硬盘上 #f.truncate(10) 无论是否有seek()或者任意的文件指针的位置,规定从文件开头截断到指定字符数,