说明: f1,文件句柄,文件对象.
open('文件路径'),默认打开方式r,默认打开编码是操作系统的默认编码:windows是gbk编码,linux和mac默认是utf-8
打开文件的模式有:
r , 只读模式,w, 只写模式,【不可读,不存在则创建,存在则删除文件中的内容】a, 追加模式,【不可读,不存在则创建,存在则只追加内容】"+" 表示可以同时读写某个文件
r+w+a+"b"表示处理二进制文件
rbwbab1.read
1) read当不传参数的时候,读取所有内容.注意:当文件比较大时,会占用很大的内存,不推荐使用.
2) 传参,如果是以r方式打开,参数指的是读取多少个字符
3) 传参,如果是以rb方式打开,传输指的是读取多少个字节.如网络传输\图片\视频常用rb模式.
假如有文件a.log,文件内容为
三月的天气 四月的天气 5月的天气 6月的天气 7月的天气例子1:以r模式打开,read() 会读取文件所有的内容.
with open("a.log",encoding="utf-8",mode="r") as f: content=f.read() print(content) 运行结果: 三月的天气 四月的天气 5月的天气 6月的天气 7月的天气
例子2:以r模式打开,read(n),会读取n个字符
1 with open("a.log",encoding="utf-8",mode="r") as f: 2 content=f.read(3) 3 print(content) 4 5 运行结果: 6 三月的例子3:以rb模式打开,read(n)会读取n个字节
1 with open("a.log",mode="rb") as f: 2 content=f.read(3) 3 print(content) 4 运行结果: 5 b'\xe4\xb8\x89'
2.readline
一行一行读,每次读取一行,不会自动停止
3.for 循环
一行一行读,从第一行开始每次读一行,督导没有之后就停止
4.readlines
write: 写内容,参数为字符串
writelines:写内容,参数为列表list
需要注意的问题:
1) w模式打开,写的是字符
2) wb模式打开,写的是字节
3) 写的过程中不会自动换行,需要自己添加换行符\n
例子:
1 with open(r"b.log",encoding="utf-8",mode="w") as f: 2 f.write("假如生活欺骗了你") 3 f.writelines(["假如生活欺骗了你\n","不要悲伤,不要心急\n","忧郁的日子里须要镇静\n","相信吧,快乐的日子将会来临!\n"])写入文件的内容:
1 题目:假如生活欺骗了你 2 假如生活欺骗了你 3 不要悲伤,不要心急 4 忧郁的日子里须要镇静 5 相信吧,快乐的日子将会来临!python修改文件的步骤
1)打开原文件,产生文件句柄2)创建新文件,产生文件句柄3)读取原文件,进行修改,写入新文件4)将源文件删除5)新文件重命名 1 import os 2 with open("b.txt",encoding='utf-8',mode="r") as f1, 3 open("b.txt_bak",encoding="utf-8",mode="w") as f2: 4 for i in f1: 5 new_content=i.replace("china","Chinese") 6 f2.write(new_content) 7 os.remove("b.txt") 8 os.renames("b.txt_bak","b.txt")
例子:
1 with open("a.log",encoding="utf-8",mode="r") as f: 2 f.seek(3) 3 content=f.read() 4 print(content) 5 print(f.tell()) 6 运行结果: 7 月的天气 8 四月的天气 9 5月的天气 10 6月的天气 11 7月的天气 12 73如果把该例子中的seek(3)改为seek(2),运行会报错,原因utf-8编码一个汉字占3个字节,如果把指针调到第2个字节,utf-8解码时会异常
转载于:https://www.cnblogs.com/yimiaoyikan/p/8847394.html