Nicole2333

导航

文件

#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)    收藏  举报