python文件的读写方法有哪些类型(Python文件读写操作方法「文字和视频讲解」)python初学 / python文件操作与文件读写...

wufei123 发布于 2024-04-23 阅读(34)

前面大家了解python是怎么操作文件的了,也学习过文件读取和写入模式的一些细节以及文件定位等等,这节课主要是深入了解文件读写的细节控制,容错方法和关闭文件的细节,另外还有一种简写方法with语句来操作文件读写。

下面来一一讲解1.文件读取:单行读取,多行读取和按字节读取,控制读取内容量f = open(a.txt, r) content = f.read(3) # 3表示读取3个字节,同时下标会向右移动三个字节

python文件的读写方法有哪些类型(Python文件读写操作方法「文字和视频讲解」)python初学 / python文件操作与文件读写...

content = f.readline() # 表示读取一行,每次读取后指针移动一行 content = f.readlines() # 把文件按照换行符进行读取,返回一个列表print(content)

f.close()2.文件对象遍历这里要理解一个概念,文件读取后存放在一个对象f中,这个f对象是可迭代的对象,可以借助以下方法来验证一下,然后在对文件对象进行遍历f = open(files/123.jpg。

, r) print(f) print(type(f))import collections.abc print(isinstance(f, collections.abc.Iterator)) # 由此可见f也属于迭代器

for i in f: print(i, end=) if f.readable(): # 通过readable()函数做一个容错处理 content = f.readlines()

for i in content: print(i, end=) f.close()注意:一般情况下文件不是很大使用read()和readlines()方法直接读取整个文件,readline()是一行一行的读取,适合处理较大文件,f是一个迭代器,使用for循环遍历也可以处理大文件。

3.文件写入操作f = open(files/a.txt, a) if f.writable(): # 容错 print(f.write(aaa)) # 返回结果是写入字符的长度,不是文件中字符的长度 f.

close()4.关闭文件操作:文件关闭后会自动释放资源,其次还会立即清空缓冲区的数据内容到磁盘文件,否则可能会导致文件内容的丢失,使用断点验证f.flush() # 通过这个方法也可以清空缓冲区文件,执行磁盘写入

# 刷新缓冲区的三种情况:# 1.关闭文件时自动刷新;# 2.手动调用flush函数刷新;# 3.缓冲区已满会自动刷新 f = open(files/abcd.txt, w) f.write(aaa)

# 到这里内容还不能写入文件,只有刷新缓冲区或关闭后才能写入 f.flush()5.with简写:使用with语句,不用关闭和属性操作,with语句中已经从底层帮为你解决了这个问题withopen(files/abc.txt

, w) as f: f.write(aaaaaa)6.编码和解码withopen(files/abc.txt, wb, encoding=utf-8) as f: str = aaaaaaaaaaaaaaaaaaaa

f.write(str) withopen(files/abc.txt, wb) as f: str = aaaaaaaaaaaaaaaaaaaa f.write(str.encode(

utf-8)) withopen(files/abc.txt, rb) as f: data = f.read() print(data) print(type(data

)) # 字节类型数据,想使用转为字符串 new_data = data.decode(utf-8) # 编码和解码类型应该一致,否则会报错,特别是有中文字符时 print(new_data) print(

type(new_data)) withopen(files/abc.txt, rb, errors=ignore) as f: # errors=ignore表示忽略编码错误 pass

视频地址:11-4【python自学网】文件操作-文件读写和关闭操作 python基础入门精讲视频教程_哔哩哔哩_bilibili文章来源:Python自学网 http://www.wakey.com.cn/document-file-readline.html

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

欧意 新闻29445