文件的打开和关闭

编程中经常需要读写文件,就需要用到内置函数open, 语法如下:

open(
file,
mode='r',
buffering=-1,
encoding=None,
errors=None,
newline=None,
closefd=True,
opener=None,
)
Docstring:
Open file and return a stream. Raise IOError upon failure.

1. 打开文件

open函数第一个参数是file, 一般指的是文件的路径,包含绝对路径和相对路径。

  • 打开绝对路径或者相对路径的文件,默认是以只读的模式打开
f = open('/home/tafan/workspace/file.txt')
#f = open('../file.txt')

print(f)
<_io.TextIOWrapper name='/home/tafan/workspace/file.txt' mode='r' encoding='UTF-8'>

2. 关闭文件

当打开文件后,记得使用close()方法关闭文件。不及时关闭文件,会出现许多问题。

  • 文件对象会占用操作系统的资源,操作系统同一时间能打开的文件数量是有限的
  • 写入文件后可能由于系统崩溃导致写入数据丢失,因为Python可能缓冲你写入的数据(将数据暂时存储在某个地方,以提高效率)
  • 容易被其他程序篡改数据

如何安全有效的关闭文件, 可以用到try...finallywith open语句。

  • 使用try...finally, 可以有效的防止读写及其他函数出错导致没有及时关闭文件
f = open('file.txt', 'w+')
try:
    f.write('example')
finally:
    file.close()
  • 使用with open,到达该语句末尾时,将自动关闭文件,即便出现异常亦如此,推荐使用
with open('file.txt', 'w+') as f:
    f.write('example')
f.write('example too')

#testing
Traceback (most recent call last):
  File "a.py", line 5, in <module>
    f.write('example too')
ValueError: I/O operation on closed file.
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。