第35讲easygui作业的问题
第35讲的作业,我的代码是这样的import easygui as g
import os
filename = g.fileopenbox(default="*.txt")
title = os.path.basename(filename)
if filename != None:
f = open(filename,encoding='utf-8')
text = f.read()
text_after = g.textbox('【%s】的内容是:' % title, '显示文件内容',text)
f.close()
if text != text_after[:-1]:
choice = g.buttonbox('文件内容有变化,请选择以下操作:','警告',('覆盖保存','放弃保存','另存为'))
if choice == '覆盖保存':
f = open(filename,'w',encoding='utf-8')
f.write(text_after[:-1])
f.close
if choice == '放弃保存':
pass
if choice =='另存为':
new_file = g.fileopenbox(default="*.txt")
if os.path.splitext(new_file) != '.txt':
new_file += '.txt'
f = open(new_file,'w+')
f.write(text_after[:-1])
f.close
不明白为什么覆盖保存或另存为都写不进去,也就是文件是空的?小甲鱼的为啥就写的进去?有啥不一样啊。另外pass是啥意思,忘记了哪一讲讲的。 本帖最后由 Twilight6 于 2020-7-4 09:57 编辑
f.close 都忘记加括号了 文件没正常关闭
还有最新版本的 easygui 现在不会在关闭 text 组件时候自动添加个 换行符了 把 if text != text_after[:-1] 改成 if text != text_after
最后另存为 你组件用成了 fileopenbox 应该改成 filesavebox ,还有写入文件可以直接单纯加个 w 即可,不用 w+,而且忘记加上编码了哈最后个open,pass 就是个占位符
完整代码:
import easygui as g
import os
filename = g.fileopenbox(default="*.txt")
title = os.path.basename(filename)
if filename != None:
f = open(filename,encoding='utf-8')
text = f.read()
text_after = g.textbox('【%s】的内容是:' % title, '显示文件内容',text)
f.close()
if text != text_after:
choice = g.buttonbox('文件内容有变化,请选择以下操作:','警告',('覆盖保存','放弃保存','另存为'))
if choice == '覆盖保存':
f = open(filename,'w',encoding='utf-8')
f.write(text_after)
f.close()
if choice == '放弃保存':
pass
if choice =='另存为':
new_file = g.filesavebox(default="*.txt")
if os.path.splitext(new_file) != '.txt':
new_file += '.txt'
f = open(new_file,'w',encoding='utf-8')
f.write(text_after)
f.close()
pass 就是空语句,占位符。
页:
[1]