文件
#with open(r'E:\2.txt','r+') as f,\
open(r'E:\3.txt','r+') as ff
f = open(r'E:\2.txt','r+') #ret = f.read() # for i in ret: #ret = f.write("add string") #会覆盖之前的内容 # for i in range(5): # print(f.readline()) # print(i) # print(f.tell()) #打印当前光标位置 import sys,time for i in range(20): # sys.stdout.write('-') print(f.readline()) sys.stdout.flush()#如果不加flush,会直接一下读取出来,而不是一个个打印出来,刷新内部缓冲的作用 time.sleep(0.5) f.close()
读模式 r
read()
readline()
readlines() 返回结果是列表
文件内容如下: 12345 asdff 宅男方法呢 f = open('1.txt','r',encoding = 'utf-8') print(len(f.readline())) #文件首行字符数 print(len(f.readlines())) #从当前光标位置开始到剩下的 运行结果: 6 2 #从当前光标位置开始到文件结束的行数 #readlines的结果为列表 2是列表长度 (元素个数) f = open('1.txt','r',encoding = 'utf-8') print(len(f.readlines())) print(len(f.readline())) #从当前光标位置开始到文件结束的字符个数 运行结果: 3 0 #从当前光标位置开始到文件结束的字符个数
f = open('1.txt','r',encoding = 'utf-8') print(type(f.readlines())) print(type(f.readline())) 运行结果: <class 'list'> <class 'str'>
写模式(慎用) w
如果文件不存在,新建一个再写入内容
如果存在,将原文件清空再写入
write(‘112233\n234444\n’) 需要自己加上换行 文件内容必须是字符串
writelines('[123\n','567\n]',1) 需要自己加上换行 文件内容(列表里面)必须是字符串
追加模式 a 从文件的最后一个位置(不是最后一行)开始追加
读写模式 r+
原封不动复制到一个新的文进里面





truncate() 文件内容截取其实是写操作,所以文件的打开方式是r+或者a+,不能是w+(打开会将文件内容清空)
seek() 用来控制光标移动
比如文件内容:你好 utf-8格式 seek(1)会报错,因为 utf-8格式下一个汉字3个字节
seek()的三种模式
eg:seek(3,0) 将光标移动到从文件开头算起的第3个位置,等同于seek(3)
seek(3,1) 相对于光标此时位置的第3个位置(文件最好以b模式打开,如rb)
seek(-3,2) 文件末尾倒数3个字节
![]()


posted on 2019-03-25 21:40 Nicole2333 阅读(96) 评论(0) 收藏 举报
浙公网安备 33010602011771号