Python使用with open() as读写文件【必知必会】
前言:在前面的博文里,我介绍了Python中的文件操作,详情见:深入浅出Python——Python高级语法之文件操作,本文将主要讲解with open() as读写文件的优点与作用。文章目录一、读文件抛出异常二、解决上述问题三、with open() as读写文件一、读文件抛出异常在之前的博文里,我们说到:要以读文件的模式打开一个文件对象,使用Python内置的open()函数,传入文件名和标示
前言:在前面的博文里,我介绍了Python中的文件操作,详情见:深入浅出Python——Python高级语法之文件操作,本文将主要讲解with open() as
读写文件的优点与作用。
一、读取文件抛出异常
在之前的博文里,我们说到:要以读文件的模式打开一个文件对象,使用Python内置的open()
函数,传入文件名和标示符:
f = open('test.txt', 'r')
标示符'r'
表示读文件。这样,我们就成功地打开了一个文件。但是,如果这个文件不存在,那么此时open()
函数就会抛出一个IOError
的错误,并且给出错误码和详细的信息告诉我们文件不存在,如下:
Traceback (most recent call last):
File "G:\pyStudy\NotepadPyTest\Test", line 1, in <module>
f = open('test.txt', 'r')
FileNotFoundError: [Errno 2] No such file or directory: 'test.txt'
如果文件成功打开,那么此时就可以调用read()
方法读取文件中的内容。
f.read()
特别需要注意的是: 在操作文件完成之后,需要调用close()
方法关闭文件。因为文件对象会占用操作系统的资源,并且操作系统同一时间能打开的文件数量也是有限的:
f.close()
二、分析解决上述问题
由于文件读写时有可能产生IOError
,一旦出错,后面的f.close()
就不会调用。所以,为了保证无论是否出错都能正确地关闭文件,我们可以使用try ... finally
通过捕捉异常、处理异常来实现。
如果能保证文件打开没有异常的情况下,我们每次都这么写,实在太繁琐。所以,Python引入了with
语句来自动帮我们调用close()
方法。也就是说:文件读取的这个操作,只有在with
语句内部才会生效,不会离开。
三、with open() as读写文件
语法:
with open(文件名, 模式) as 文件对象:
文件对象.方法()
实例:
with open('test.txt', 'r') as f:
print(f.read())
由此可见:代码更加简洁、优美,并且不必调用close()
方法。
注意:with
语句不仅可以用来读文件,还可以写文件,具体根据需求。
四、File对象属性总结
文件对象属性 | 描 述 |
---|---|
file.closed | 表示文件已经被关闭,否则为False |
file.mode | 打开文件时使用的访问模式 |
file.encoding | 文件所使用的编码 |
file.name | 文件名 |
file.newlines | 未读取到行分隔符时为None |
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)