鱼C论坛

 找回密码
 立即注册
查看: 905|回复: 6

[已解决]与open的方法有关的问题

[复制链接]
发表于 2022-3-17 23:04:00 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
f1 = open(file_name,encoding = "utf-8")
all_file = f1.read()
f2 = open( file_name,'w',encoding = "utf-8")



f1 = open(file_name,encoding = "utf-8")
f2 = open( file_name,'w',encoding = "utf-8")
all_file = f1.read()

我运行下来 认为两个是有区别的 上面那个all_file是有东西的 下面那个all_file是空的
我是否可以理解为f1 = open(file_name,encoding = "utf-8")这个语句 仅仅只是把f1指向了这个文件,而并没有把文件保存在f1里面,所以 下面三条语句 在执行f2 = open( file_name,'w',encoding = "utf-8")的时候,就把文件里面的内容全部覆盖了 f1指向的就是一个空文件
我可以这么理解吗?
最佳答案
2022-3-17 23:08:14
同1个file_name被f1打开,然后双被f2打开, 再f1.read()?f1还能用吗?
这种文件打开不是共享模式,W是独占模式了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-3-17 23:08:14 | 显示全部楼层    本楼为最佳答案   
同1个file_name被f1打开,然后双被f2打开, 再f1.read()?f1还能用吗?
这种文件打开不是共享模式,W是独占模式了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-3-17 23:19:34 | 显示全部楼层
ba21 发表于 2022-3-17 23:08
同1个file_name被f1打开,然后双被f2打开, 再f1.read()?f1还能用吗?
这种文件打开不是共享模式,W是独 ...

不是很明白 可以认为f2执行了之后f1的语句就没有意义了吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-3-17 23:25:05 | 显示全部楼层
Jerry~Mouse 发表于 2022-3-17 23:19
不是很明白 可以认为f2执行了之后f1的语句就没有意义了吗

是的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-3-17 23:45:36 | 显示全部楼层

那我还有一个小问题,什么时候是共享模式 什么时候是独占模式呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-3-18 09:28:36 | 显示全部楼层
Jerry~Mouse 发表于 2022-3-17 23:45
那我还有一个小问题,什么时候是共享模式 什么时候是独占模式呢

"r" 只读就是共享,"w" 覆盖就是独占!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2022-3-18 19:47:13 | 显示全部楼层
Jerry~Mouse 发表于 2022-3-17 23:45
那我还有一个小问题,什么时候是共享模式 什么时候是独占模式呢

共享,独占,就如词意。
你要了解的话,测试下就知道了。
  1. p = r'D:\Users\Administrator\Desktop\test.txt'
  2. print('============================测试1==================================')
  3. f1 = open(p, 'r')
  4. f2 = open(p, 'r')
  5. print(f1.read())
  6. print('------------------------------------------------------------------')
  7. print(f2.read())

  8. print('============================测试2==================================')
  9. f1 = open(p, 'r')
  10. f2 = open(p, 'w')
  11. print(f1.read())
  12. print('------------------------------------------------------------------')
  13. print(f2.write('abcabcfdfadf\n'))
  14. f2.close()

复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-19 23:35

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表