打开文件 | Python从入门到精通:高阶篇之四十四
关于文件的读、写操作,保存,删除,比较麻烦,我们先对关闭文件来做出说明。
关闭文件
创建一个demo.txt文件
先打开一个文件:
file_name = 'demo.txt'
调用open()来打开文件:
file_obj = open(file_name)
当我们获取了文件对象以后,所有的对文件的操作都应该通过对象来进行。
读取文件中的内容:
content = file_obj.read()
read()方法,用来读取文件中的内容,它会将内容全部保存为一个字符串返回。
将内容打印出来:
print(content)
执行结果:
在对文件进行操作之后必须要对文件进行关闭。
关闭文件
调用close()方法来关闭文件
file_obj.close()
执行结果:
执行结果一样,如果能看出对文件进行关闭呢?
我们对文件进行读取:
file_obj.read()
执行结果:
程序出错了,是因为不能对已经关闭的文件进行操作,所以程序出错。
但是我们对于close的调用并不常见,因为比较麻烦,每次都必须在close之前去编写程序,有时候可能会忘记。python为了解决这种麻烦,提供了一种方法。
with ... as 语句
with open(file_name) as file_obj :
print(file_obj.read())
执行结果:
在with
语句中可以直接使用file_obj
来做文件操作。
此时我们在with方法外面输出结果,来对比一下:
print(file_obj.read())
执行结果:
此时这个文件只能在with中使用,一旦with结束则文件会自动close()。
接下来我们来进一步完善我们的代码:
file_name = 'hello'
with open(file_name) as file_obj :
print(file_obj.read())
此时明显hello文件是不存在的。
执行结果:
此时因为文件不存在,出现了异常,若我们想对文件异常处理该怎么办呢?
我们可以直接利用try...except
进行处理。
file_name = 'hello'
try:
with open(file_name) as file_obj :
print(file_obj.read())
except FileNotFoundError:
print(f'{file_name} 文件不存在~~')
执行结果:
如果修改代码:
file_name = 'demo.txt'
执行结果:
如果存在,则可以正常输出,且关闭文件。
配套视频课程,点击这里查看
获取更多资源请订阅Python学习站