鱼C论坛

 找回密码
 立即注册
查看: 1080|回复: 4

[已解决]关于文件打开的问题

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

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

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

x
f = open('test.txt','a+')   #问题在这里的a+
for each_line in f:
    print(each_line)

f.close()

这个test.txt里面是有内容的,但是为什么用‘a+’读取不出来而用‘r’就可以读取出来呢?
最佳答案
2022-3-24 21:22:33
因为以 'a+' 模式打开文件指针是位于文件末尾的,所以读不出数据,

你得把文件指针移到开头:
f = open('test.txt','a+')
f.seek(0)           # 把指针移到文件开头
for each_line in f:
    print(each_line)

f.close()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-3-24 21:22:33 | 显示全部楼层    本楼为最佳答案   
因为以 'a+' 模式打开文件指针是位于文件末尾的,所以读不出数据,

你得把文件指针移到开头:
f = open('test.txt','a+')
f.seek(0)           # 把指针移到文件开头
for each_line in f:
    print(each_line)

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

使用道具 举报

 楼主| 发表于 2022-3-24 21:27:01 | 显示全部楼层
isdkz 发表于 2022-3-24 21:22
因为以 'a+' 模式打开文件指针是位于文件末尾的,所以读不出数据,

你得把文件指针移到开头:

哦~明白了 我再追问一个问题,既然‘+’,是可读写模式,是不是我可以用‘r+’来代替‘w’和‘r’呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-3-24 21:34:45 | 显示全部楼层
Jerry~Mouse 发表于 2022-3-24 21:27
哦~明白了 我再追问一个问题,既然‘+’,是可读写模式,是不是我可以用‘r+’来代替‘w’和‘r’呢?

r+:可读写,指针位于文件开头,(w+,可读写,指针位于文件开头,不过会清空原文件数据,这时候读没有多大意义)
w: 可写不可读,指针位于文件开头,
r: 可读不可写,指针位于文件开头

他们的区别,能不能替代看应用场景
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2022-3-24 21:40:01 | 显示全部楼层
isdkz 发表于 2022-3-24 21:34
r+:可读写,指针位于文件开头,(w+,可读写,指针位于文件开头,不过会清空原文件数据,这时候读没有多 ...

好的 明白了 谢谢指点
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-11 22:37

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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