一些问题的

一些问题的

问下,既然使用with来开这些文件,那么flush不是必须的吧,每次关闭前不是会自动把缓存里面的文件全部写入进去嘛? 


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕笑蓉 2020-06-16 15:53:20

同学,你好。with用来打开文件,在不用的时候关闭,和flush刷新文件是没有关联的,因此在需要使用flush的时候要使用,不能因为使用了with就不使用flush了。

如果解决了你的疑惑,请采纳,祝学习愉快~ 

  • 提问者 慕前端8369922 #1
    但是java里面老师说的是每次关闭文件之前会自动把缓存里未满的数据写入文件,也就是等于说在关闭写入前会自动执行一次flush,那么用with他会自动关闭写入,也就是说在不用的时候会关闭,然后关闭前会自动清缓存,那不就没必要用flush了?
    2020-06-17 07:50:04
  • 好帮手慕笑蓉 回复 提问者 慕前端8369922 #2
    同学,你好。同学的理解是正确的,python的实现中,调用write后,只是把数据写到内核缓冲区,实际上并没有把数据写到磁盘上,只有调用close或是内核缓冲区满的情况下,数据才会写入磁盘中。但在一些复杂的业务逻辑上,调用flush刷新文件是有必要的,可以在在每次写入文件的时候把数据输出到磁盘,不必等文件关闭后或是缓存区满的情况下再写入,有一点也需要注意,根据使用的操作系统和设置,flush可能出于锁定考虑而禁止其他正在运行的程序访问这个文件,而且系统频繁的将数据写到磁盘,会比较耗CPU,因此flush的使用要根据业务需要。 祝学习愉快~
    2020-06-17 10:54:08
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
1.Python零基础入门
  • 参与学习           人
  • 提交作业       2727    份
  • 解答问题       8160    个

想要进入Python Web、爬虫、人工智能等高薪领域,你需要掌握本阶段的Python基础知识,课程安排带你高效学习轻松入门,学完你也能听得懂Python工程师的行业梗。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师