鱼C论坛

 找回密码
 立即注册
查看: 3761|回复: 5

一个文件f.write的时候,如果输入f.read()(可正确返回字符串)为什么返回0?

[复制链接]
发表于 2016-3-1 20:57:54 | 显示全部楼层 |阅读模式
2鱼币
第027讲动动手的第一个问题,小甲鱼给出的答案是f2.write(f1.read()),但是实际验证时返回0啊,为什么?

最佳答案

查看完整内容

对的,read后文件的指针已经到了文件尾部,再也读不到内容了。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-3-1 20:57:55 | 显示全部楼层
安以陌 发表于 2016-3-1 21:50
我明白啦,是因为我已经f1.read()一次了,再次f1.read()的时候就会读取剩余的内容,也就是空的内容啦。。 ...

对的,read后文件的指针已经到了文件尾部,再也读不到内容了。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-3-1 21:40:35 | 显示全部楼层
没有太明白你的问题,你是说第二个文件的内容为空吗?
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-3-1 21:42:49 | 显示全部楼层
冬雪雪冬 发表于 2016-3-1 21:40
没有太明白你的问题,你是说第二个文件的内容为空吗?

我的意思是:f1.read()可以直接shell下返回字符串,但是f2.write(f1.read())没有把f1.read()返回的字符串写进去,为什么?
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-3-1 21:48:21 | 显示全部楼层
你是严格按照小甲鱼的程序做的吗,我简单写了一下没有问题。
  1. >>> f1 = open('d:\\py\\1.txt')
  2. >>> f2 = open('d:\\py\\2.txt','w')
  3. >>> a = f2.write(f1.read())
  4. >>> a
  5. 108
  6. >>> f1.close()
  7. >>> f2.close()
复制代码


是不是你没有关闭文件?
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-3-1 21:50:02 | 显示全部楼层
冬雪雪冬 发表于 2016-3-1 21:48
你是严格按照小甲鱼的程序做的吗,我简单写了一下没有问题。

我明白啦,是因为我已经f1.read()一次了,再次f1.read()的时候就会读取剩余的内容,也就是空的内容啦。。不知道我想的对不对?
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-19 22:02

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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