python 文件的读,写

文件的参数

open(file[,mode][,encoding][,errors])
四个参数(前两个是必选参数,后两个是可选参数):
file 文件的路径,绝对路径,相对路径均可
mode 文件打开模式
encoding 编码, 编码使用utf-8,或者 gbk,默认编码是 gbk
errors 错误处理, ignore 忽略

读:

read 方法
r (read)以只读字符的方式打开文件, 如果文件不存在,则会出现异常;反之,则直接打开,文件定位符放在起始位置
rb (read byte) 以只读二进制的方式打开文件,如果文件不存在,则会出现异常
r+ (read byte) 以读写的形式打开文件,如果文件不存在,则会出现异常,
rb + (read byte) 以读写二进制的方式打开文件,如果文件不存在,则会出现异常
rf = open("文档.txt",mode="r",encoding="utf-8",errors="ignore")

注意:文件不存在,则报异常:FileNotFoundError

with open("文档.txt",mode="r",encoding="utf-8",errors="ignore")  as f:
	f.read()   # 一次读取全部内容

	f.read(3)  #read设置了参数, 参数表示读取多少个字符,空格算字符,汉字算一个字符
	f.read(5) #如果继续读,是接着上次读取到的地方继续读
	
	rf.read(1024*1024)   #大文件读取,1024K = 1M,1024*1M = 1G,
	
	#seek用来跳到某个位置
	# 参数1:offset  偏移量  正数n表示位置相对于参考位置向后移动n个位置, 负数表示向前移动
	# 注意:位置的值不能是负数
	# 参数2: shence  0表示相对于起始位置  1表示相对于当前位置,2相对于文件的末尾
	f.seek(6,1) #相对于当前位置,向后移动6个位置
	
	f.readline()  #读取一行
	
    f.readlines()  #按行全部读取 ,结果是包含了多行数据的列表

with语法:with可以自动的帮我们释放资源,关闭连接,即在此处不需要执行close

rf = open("文档.txt",mode="rb")
content = rf.read()

# 字符串前加上 b, 表示该数据是二进制数据
# 将二进制数据解码decode
content = content.decode(encoding="UTF-8")

# 以二进制读取数据时,read中的参数,表示带去多少个字节
# 在utf-8中,英文字母 占据一个字节 , 汉字占据3个字节,     gbk中汉字占据2个字节
# content = rf.read(11)
rf.close()

注意:使用二进制时,不能设置编码;读写完毕之后,都要关闭连接

write 方法
w 以只写字符的方式打开文件, 如果文件不存在,则会创建新的文件,然后可以向新的文件中添加数据,如果文件存在,则打开该文件,并擦除掉原文件内容,文件定位符放在文件的开始位置,再写时从文件定位符开始写
wb 以只写二进制的形式打开文件,如果文件不存在,则会创建新的文件,然后可以向新的文件中添加数据,如果文件存在,则打开该文件,并擦除掉原文件内容,文件定位符放在文件的开始位置,再写时从文件定位符开始写
w+ 以读写的形式打开文件,如果文件不存在,则会创建新的文件,然后可以向新的文件中添加数据,如果文件存在,则打开该文件,并擦除掉原文件内容,文件定位符放在文件的开始位置,再写时从文件定位符开始写
wb+ 以读写二进制的形式打开文件,如果文件不存在,则会创建新的文件,然后可以向新的文件中添加数据,如果文件存在,则打开该文件,并擦除掉原文件内容,文件定位符放在文件的开始位置,再写时从文件定位符开始写
with open("文档.txt",mode="w",encoding="utf-8",errors="ignore")  as f:
    f.write()   #一次写入
    f.writelines()    #按行写入,适用于csv文件制表
    
    f.flush()    # 直接把内部缓冲区的数据立刻写入文件,而不是被动的等待自动刷新缓冲区写入

追加

append 方法
a 以追加字符的形式打开文件, 如果文件不存在,则会创建新的文件,然后可以向新的文件中添加数据,如果文件存在,则打开该文件,不会擦除源文件内容,文件定位符放在末尾,从末尾开始写
ab 以追加二进制的形式打开文件, 如果文件不存在,则会创建新的文件,然后可以向新的文件中添加数据,如果文件存在,则打开该文件,不会擦除源文件内容,文件定位符放在末尾,从末尾开始写
a+ 以读写的形式打开文件, 如果文件不存在,则会创建新的文件,然后可以向新的文件中添加数据,如果文件存在,则打开该文件,不会擦除源文件内容,文件定位符放在末尾,从末尾开始写
ab+ 以读写二进制的形式打开文件, 如果文件不存在,则会创建新的文件,然后可以向新的文件中添加数据,如果文件存在,则打开该文件,不会擦除源文件内容,文件定位符放在末尾,从末尾开始写

使用方法参考write

猜你喜欢

转载自blog.csdn.net/weixin_42367527/article/details/82761441