读:
1 f=open("骗自己",'r',encoding='utf8') #打开指定文件,获取文件句柄 “f=open("/路径/文件名",'操作模式',encoding='指定编码格式')” r:为只读模式 2 data=f.read() #读取全部内容 3 #data=f.read(10) #读取n(10)个字节 (read方法认为一个中文也是一个字节,就是这么牛掰) 4 print(data)
5 print(f.readline().strip()) # readline方法可以输出一行,print输出默认会输出一个换行,加strip()方法是清除print的换行,光标在哪就从那开始输出
6 print(f.readlines()) #以列表的形式输出文件的所有内容, 7 f.close() #关闭文件 (python默认会自动执行关闭操作,但还是要自己指定一下.因为老百姓有句名言,信自己得永生)
用readlines()方法读取所有内容,并在第六行添加注释:
1 f=open("骗自己",'r',encoding='utf8') 2 data=f.readlines() 3 f.close() 4 for i,n in enumerate(data): 5 if i == 6: 6 n="".join([n.strip(),"#这一句我不会唱"]) 7 print(n.strip())
readlines()方法为把文件里所有内容都放到内存中,然后一起读出来,对于大文件而言对性能会有极大的影响,不建议使用
读大文件是建议使用下边的方法:
1 f=open("骗自己",'r',encoding='utf8') 2 for i in f: 3 print(i.strip()
单独输出 f 是一个内存对象:<_io.TextIOWrapper name='骗自己' mode='r' encoding='utf8'>
python中 for 语句对读取内存对象做了迭代器的处理,(迭代器:使用一行,加载一行,删除后再继续加载下一行)
能调用方法的一定是对象
---- alex的徒弟说让记住这句话
写:
1 f=open("骗自己",'w',encoding="utf8") #w:为只写模式,如果文件不存在则会创建,如果文件中有内容会将其清空 2 f.write("如果有天自己变的很有钱") #写入到内存 3 f.write(" 我的第一选择不是去环游世界") # 为换行符,python默认是不会跟你加的,因为一个内存块默认为4k...而写入内容的时候会根据光标所在位置进行写入...算了,你懂就好 4 f.close() #关闭文件,并将内存中的内容加载到磁盘中
追加:
1 f=open("骗自己",'a',encoding='utf8') #a:为追加模式,如果文件不存在则会创建,调动光标到文件末尾 2 f.write("躺在世界上最大最软的沙发里") #写入到内存 3 f.write(" 吃了就睡醒了再吃先过一年") # 也TMD是换行符,很强 4 f.close() #关闭文件,并将内存中的内容加载到磁盘中
读、写、追加的升级版:
1 f=open("骗自己",'r+',encoding='utf8') # r+:读写模式 2 print(f.readline()) # 读取光标所在的那一行 3 f.write("---------------------") # 写的操作会追加在文件末尾 4 5 f=open("骗自己",'w+',encoding='utf8') # w+:写读模式,文件不存在则创建,文件存在则清空文件内容 6 f.write("---------------------") # 写的操作会追加在文件末尾 7 print(f.seek(0)) 8 print(f.readline()) # 写完后光标在文件末尾,所以内容读取不到,需要将光标移动到0的位置才可以读的到 9 10 f=open("骗自己",'a+',encoding='utf8') # a+:追加读,光标会直接调整的末尾 11 print(f.readline()) #光标在默认,直接读没有内容 12 f.write("-------------") #写的内容会直接追加到文件末尾
其他操作:
1 print(f.tell()) #tell()方法获取当前光标的位置 2 f.seek(5) #指定光标的位置
可以用作断点续传
3 f.flush() #将缓存中的内容直接刷新到内存中
with语句:
1 with open("骗自己",'r',encoding="utf8") as f: 2 print(f.readlines()) 3 4 5 #with语句同时操作 6 with open("骗自己",'r',encoding="utf8") as f_read , open("AccountRecord",'a',encoding="utf8") as f_write: 7 for line in f_read: 8 f_write.write(line)