同时对一个文件创建两个文件对象会怎样?
Topic source不能解释,毕竟我是新手,但我们可以做个实验:
1.先回顾楼主的代码
f1 = open('./test.txt', 'w')
f1.write('f1 write first\n')
f2 = open('./test.txt', 'w')
f2.write('f2 write first\n')
f1.write('f1 write second\n')
文件结果如下:
f2 write first
f1 write second
2.我们对代码重新排序看看
f1 = open('./test.txt', 'w')
f1.write('f1 write first\n')
f1.write('f1 write second\n')
f2 = open('./test.txt', 'w')
f2.write('f2 write first\n')
文件结果如下:
f2 write first
f1 write second
可以得出初步的结论 f1
写入的内容是被 f2
一行一行代替的。但是我对老师原文的理解应该是 f1
写入的内容被全部删除才对,那么实验继续
3.关闭 f1 再写入 f1
f1 = open('./test.txt', 'w')
f1.write('f1 write first\n')
f1.write('f1 write second\n')
f1.close()
f2 = open('./test.txt', 'w')
f2.write('f2 write first\n')
文件结果如下:
f2 write first
这里我们证明了老师说的其实也是对的,不过情况和我们的不一样
4.那么 f2 是怎么覆盖 f1 的?
我们稍微改下,注意这是不一样的
f1 = open('./test.txt', 'w')
f1.write('f1 write first -- f1 write first')
f1.write('\nf1 write second')
f2 = open('./test.txt', 'w')
f2.write('f2 write first')
文件结果如下:
f2 write first -- f1 write first
f1 write second
实验结论:
- 老师没骗我们。
- 同时对一个文件打开两次,先打开的
f1
写入的内容会被后打开的f2
覆盖,但不是一行一行地覆盖,那到底是一个字一个字地覆盖还是怎么样的话,这个思考题就留给你们了。
写了好长,但愿没写错字吧。。。
- 1
UTOO_NAIVE
我先打开一个文件
f1写一次
在没有关闭的情况下又open一个
用f2写一次
再用f1写一次
结果文件中的内容是
谁能跟我解释一下这个? 'f1 write first' 被覆盖了吗?