当前位置:   article > 正文

python用with读文件的好处_with 在read file 中的作用

python with read

Python中我们经常会进行数据处理,数据来源各一,可能来自数据库,有可能来自流,也有可能来自文本文件.

当我们读取文件的时候,必须要考虑一个问题就是文件需要关闭,我们可以手动去关闭,也可以使用with,下面我们就看一下用不用with的区别

1.使用 with

a.正常读取,打印文件内容

In [36]: with open("e:/person.json") as f:

...: for line in f:

...: print(line,end='')

...:

{"name":"mike","sex":"m"}

{"name":"trumple","sex":"m"}

{"name":"nancy","sex":"f"}

{"name":"rose","sex":"f"}

b.再次查看文件对象,可以看到输出了一写基本信息

In [37]: f

Out[37]: <_io.TextIOWrapper name='e:/person.json' mode='r' encoding='cp936'>

c.对这个文件对象再次操作,发现这个文件对象已经关闭

In [38]: f.seek(0)

---------------------------------------------------------------------------

ValueError Traceback (most recent call last)

in ()

----> 1 f.seek(0)

ValueError: I/O operation on closed file.

2.不使用with

a.正常读取文件,打印内容

In [44]: f=open('e:/person.json')

In [45]: for line in f:

...: print(line[:-1])

...:

{"name":"mike","sex":"m"}

{"name":"trumple","sex":"m"}

{"name":"nancy","sex":"f"}

{"name":"rose","sex":"f"}

b.查看文件对象

In [46]: f

Out[46]: <_io.TextIOWrapper name='e:/person.json' mode='r' encoding='cp936'>

c.对文件对象再次操作

调用seek(0)让指针回到第一行

In [47]: f.seek(0)

Out[47]: 0

文件内容可以再次打印出来

In [48]: for line in f:

...: print(line[:-1])

...:

{"name":"mike","sex":"m"}

{"name":"trumple","sex":"m"}

{"name":"nancy","sex":"f"}

{"name":"rose","sex":"f"

In [49]:

为了关闭文件,必须手动调用 f.close(),如果这是个简单的文件,算不上什么问题,如果文件内容很大,而且很多,如果忘记了关闭,则会遇到麻烦

如果使用了with,则会自动关闭,而不管读取过程中有无发生问题都会关掉

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/183080
推荐阅读
相关标签
  

闽ICP备14008679号