|
6鱼币
本帖最后由 清风慕竹99 于 2019-11-2 10:57 编辑
小甲鱼的代码中if text != text_after[:-1]有点疑问。如果写成if text != text_after在textbox的窗口中不做任何修改也是会不相等的,然后执行if里面的语句,因为 textbox 的返回值会追加一个换行符。但是我写成if text != text_after没在textbox的窗口做任何修改是直接跳出了if里面的语句,求大神解答
- import easygui as g
- import os
- file_path = g.fileopenbox(default="*.txt")
- with open(file_path) as old_file:
- title = os.path.basename(file_path)
- msg = "文件【%s】的内容如下:" % title
- text = old_file.read()
- text_after = g.textbox(msg, title, text)
-
- if text != text_after[:-1]:
- # textbox 的返回值会追加一个换行符
- choice = g.buttonbox("检测到文件内容发生改变,请选择以下操作:", "警告", ("覆盖保存", "放弃保存", "另存为..."))
- if choice == "覆盖保存":
- with open(file_path, "w") as old_file:
- old_file.write(text_after[:-1])
- if choice == "放弃保存":
- pass
- if choice == "另存为...":
- another_path = g.filesavebox(default=".txt")
- if os.path.splitext(another_path)[1] != '.txt':
- another_path += '.txt'
- with open(another_path, "w") as new_file:
- new_file.write(text_after[:-1])
复制代码
在 easygui 0.98.1 中,textbox 并不会在文本末尾添加换行符,所以应该是 if text != text_after。也许小甲鱼用的老版本会添加,但是新版本不会。
|
最佳答案
查看完整内容
在 easygui 0.98.1 中,textbox 并不会在文本末尾添加换行符,所以应该是 if text != text_after。也许小甲鱼用的老版本会添加,但是新版本不会。
|