try:
file_name = “demo2.txt”
with open(file_name, encoding=‘UTF-8’) as file_obj:
content = file_obj.read(6) #读取6个字符的内容
print(content)
except FileNotFoundError:
pass
#1.调用open()来打开一个文件时, 可以将文件分为两种类型, 一种是纯文本文件(使用UTF-8编码编写的文本文件); 另一种是二进制文件(图片, mp3, ppt等文件)
#2.open()打开文件时, 默认是以文本文件的形式打开的, 但是open()默认的编码是None, 即ASCII码
#3.所以处理文本文件时,必须要指定文件的编码:
open(file_name, encoding = ‘utf-8’)
#4.如果直接使用read(), 它会将文本文件的所有内容读取出来, 如果读取的文件较大, 会一次性将文件中的内容加载到内存中, 容易导致内存泄漏
#5.read()中可以接收一个size作为参数, 该参数用来指定想要读取的字符的数量, 默认值为-1, 它会读取文件中的所有字符
#6.可以为size指定制定的值, 这样read()会读取指定数量的字符, 每一次读取都是从上次读取到的位置开始读取的, 如果字符的数量小于size, 则会读取剩余所有
#7.读取大文件:
try:
file_name = “demo2.txt”
with open(file_name, encoding=‘UTF-8’) as file_obj:
chunk = 6 #定义每一读取数据的大小
print(file_obj.readline()) #readline()函数, 可以用来读取一行数据
content = ‘’
while True:
c = file_obj.read(chunk) #读取6个字符的内容
content = content + c
if not c: #内容读取完
break
print(content)
except FileNotFoundError:
pass
#8.readlines(), 该方法用于一行一行的读取数据, 会一次性将读取到的内容, 封装到一个列表中返回
with open(file_name, encoding=‘UTF-8’) as file_obj:
r = file_obj.readlines()
print®
print(r[0])
#9.直接遍历file_obj的方法
with open(file_name, encoding=‘UTF-8’) as file_obj:
for t in file_obj:
print(t)