鱼C论坛

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

就知道文件不是什么好东西,太悲催了,文件第三发!

[复制链接]
发表于 2018-7-18 15:46:18 | 显示全部楼层 |阅读模式

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

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

x
小鱼老师35课,第3题打开文件,看是否有更改:
import easygui as g
import os
g.msgbox('请选择需要处理的文件','文件')
fname=g.fileopenbox('请选择你需要打开的文件')
msg=('文件名%s的内容为:' % os.path.basename(fname))
with open(fname,'r+') as f:
    update=g.textbox(msg,'显示文件内容',text=f.read())[:-1]
    if update!=f.read():
        choice=g.buttonbox('检测到文件内容发生改变,请选择以下操作','警告',choices=('覆盖保存','放弃保存','另存为...'))
        if choice=='覆盖保存':
            f.seek(0,0)
            f.truncate()
            f.write(update)
        elif choice=='另存为...':
            nfname=g.filesavebox('请选择你需要另存的文件')
            with open(nfname,'w') as fn:
                fn.write(update)

update=g.textbox(msg,'显示文件内容',text=f.read())[:-1],小鱼老师说返回值多一个换行符,可是我看了没有多啊。。。但是非常奇葩的是,是不是[:-1]这个东东update!=f.read()永远不相等,到底怎么回事。。。
请大大们一定要出手相助啊。。。论坛坏了,大大们都跑了。。。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-7-18 16:03:11 | 显示全部楼层
就你指出的这里确实没有多。

不过原题我没看,不知道原题指的是什么。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-7-18 16:07:02 | 显示全部楼层
ba21 发表于 2018-7-18 16:03
就你指出的这里确实没有多。

不过原题我没看,不知道原题指的是什么。

f1=open('D:\\Program Files\\record.txt')

f2=open('D:\\Program Files\\newrecord.txt')

f1.read()==f2.read()
Out[3]: True

两个文件读出来的也一样,为什么那条判断是不一样的呢?还有天理吗?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-7-23 07:54:54 | 显示全部楼层
cable 发表于 2018-7-18 16:07
f1=open('D:\\Program Files\\record.txt')

f2=open('D:\\Program Files\\newrecord.txt')

为啥不一样呢?
不都是True么
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-7-27 09:42:52 | 显示全部楼层
无符号整形 发表于 2018-7-23 07:54
为啥不一样呢?
不都是True么

这题我已经知道怎么回事了,是 if update!=f.read()这句话的问题,因为指针会动,所以要先把读的内容赋出来,再比较就对了。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-21 19:45

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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