此时再输入content=file_obj.read() print(content),就会报错。
11、with…as语句:
在with语句中可以直接使用file_obj来做文件操作,此时这个文件只能在with中使用,一旦with结束,则文件会自动结束。
这个会简化一些,不用手动关闭文件了。
例如:
file_name=r'C:/Users/茶茶/Desktop/demo.txt'
with open(file_name) as file_obj:
print(file_obj.read())
12、对异常信息应用,捕获错误信息:
例如:
file_name=r'C:/Users/茶茶/Desktop/hello.txt'
try:
with open(file_name) as file_obj:
print(file_obj.read())
except FileNotFoundError:
print(f'{file_name}文件不存在~~')
13、文件的简单读取:
调用open()来打开一个文件,可以将文件分成两种类型:
一种是纯文本文件(使用utf-8等编码编写的文件)
另一种是二进制文件(图片、mp3、ppt等文件)
通过read()来读取文件中的内容,默认是以文本文件的形式打开的。
通过open()默认的编码为None,所以处理文本文件时,必须要指定文件的编码。
中文文件要加个encoding='utf-8'。
14、如果要读取的文件较大的话,会一次性将文件的内容加载到内存中,导致内存泄漏,所以对于较大的文件,不要直接调用read(),read()可以接收一个size作为参数,该参数用来指定要读取的字符数量,默认值为-1,它会读取文件中的所有字符。
可以为size指定一个值,这样read()会读取指定数量的字符,每一次读取都是从上次读到位置开始读取的,如果字符的数量小于size,则会读取剩余所有的,如果已经读取到了文件的最后,则会返回空串' '。
例如:
file_name=r'C:/Users/茶茶/Desktop/demo2.txt'
with open(file_name) as file_obj:
content=file_obj.read(-1)
print(content)
print(len(content))
读取前七个字符:
file_name=r'C:/Users/茶茶/Desktop/demo2.txt'
with open(file_name) as file_obj:
content=file_obj.read(7)
print(content)
print(len(content))
继续再读七个字符:
file_name=r'C:/Users/茶茶/Desktop/demo2.txt'
with open(file_name) as file_obj:
content=file_obj.read(7)
content=file_obj.read(7)
print(content)
print(len(content))
15、readline()每次读一行,readlines()会一次性将读取到的内容封装到一个列表中返回。
例如:
file_name=r'C:/Users/茶茶/Desktop/demo2.txt'
with open(file_name) as file_obj:
print(file_obj.readline())
print(file_obj.readline())
16、也可以用for循环
例如:
file_name=r'C:/Users/茶茶/Desktop/demo2.txt'
with open(file_name) as file_obj:
for t in file_obj:
print(t)
17、write()来向文件中写入内容,如果操作的是一个文本文件的话,则write()需要传递一个字符串作为参数,使用open()打开文件时必须要指定打开文件时索要做的操作(读、写、追加),如果不指定操作类型,则默认是读取文件。
而读取文件时,是不能向文件中写入的,r表示只读的,w表示是可写的,使用w来写入文件时,如果文件不存在会创建文件,如果文件存在则会截断文件。
截断文件指删除原来文件中的所有内容。
该方法可以分多次向文件中写入内容。
例如:
file_name=r'C:/Users/茶茶Desktop/demo.txt'
with open(file_name,'w') as file_obj:
file_obj.write('hello hello how are you!')
例如:
file_name=r'C:/Users/茶茶/Desktop/demo3.txt'
with open(file_name,'w') as file_obj:
file_obj.write('hello hello how are you!')
例如:
file_name=r'C:/Users/茶茶/Desktop/demo.txt'
with open(file_name,'w') as file_obj:
file_obj.write('hello hello how are you!')
file_obj.write('hello hello how are you!')
file_obj.write('hello hello how are you!')
18、a表示追加内容,如果文件存在,则会向文件中追加内容,r+表示既可读也可写,文件不存在会报错。
例如:
file_name=r'C:/Users/茶茶/Desktop/demo.txt'
with open(file_name,'a') as file_obj:
file_obj.write('hello hello how are you!')
file_obj.write('hello hello how are you!')
file_obj.write('hello hello how are you!')