课程中的问题

课程中的问题

1、用with open(文件名1) as 别名1,open(文件名2) as 别名2的方式同时打开两个文件,那么打开这两个文件和关闭这两个文件的先后顺序是啥呢?哪个先打开,哪个后打开?

2、这里没有写flush(),会有啥问题吗?不能被动地等待缓冲区写入么?被动地等待输出缓冲区写入是指:文件关闭后会自动刷新缓冲区,意思是文件关闭后,缓冲区的内容还可以写入文件里???

3、while true里为啥不写flush()?因为将rest变量内容存入f_dist文件中,下次循环给rest重新赋值之前,缓冲区中的rest变量内容就会赶紧写入f_dist文件中,然后再修改rest变量的值,是这样么?


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

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

1回答
好帮手慕美 2019-05-06 12:01:23

同学,你好,python是支持同时打开多个文件的。例:

# 同时打开a和b文件
# with open('a.txt', 'r') as a, open('b.txt', 'r') as b:
#     print(b.read())
#     print(a.read())
#  先打开a再打开b
with open('a.txt', 'r') as a:
    with open('b.txt', 'r') as b:
        print(a.read())
        print(b.read())

问题2:

flush方法是用来刷新缓冲区的,即将缓冲区中的数据立刻写入文件,同时清空缓冲区。正常情况下缓冲区满时,操作系统会自动将缓冲数据写入到文件中。文件关闭时,原理是内部先调用flush方法来刷新缓冲区,再执行关闭操作,这样即使缓冲区数据未满也能保证数据的完整性。

问题3:内层while循环将读取到的内容赋值给变量rest,然后再进行写入,可能会存在内容在缓冲区中并没有写入的情况,当缓冲区满时,会自动将缓冲数据写到文件中,或者是可以在读取和写入结束后一次性的flush刷新缓冲区。

如果我的回答解决了您的疑惑,请采纳!祝学习愉快~~~~

  • 提问者 a3991516 #1
    那在用python执行文件的写入操作时,是否都需要在文件关闭前使用flush()方法?
    2019-05-06 12:17:10
  • 好帮手慕美 回复 提问者 a3991516 #2
    在文件关闭时原理会先刷新缓冲区再进行关闭,因此写不写都是可以的。如果同学习惯写也是没影响的
    2019-05-06 12:21:46
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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