----------------
文本文件的读写
--------------------
应のBlog
在以前的课程中我们学习了如何做一个编贴助手类似的软件,大家应该都可以写出来这样的一个软件了吧?
但是缺少一个很重要的功能,就是把界面上的字保存下来.
今天我们就来学习如何读写文件.
代码:
import appuifw
def cn(x):return x.decode("utf-8")
appuifw.app.body=m=appuifw.Text()
def save():
if appuifw.query(cn("要保存当前内容吗?"),"query"):
text=m.get().encode("utf-8")
f = open("e:\\mifan.txt", "w")
f.write(text)
f.close()
appuifw.note(cn("成功保存到e:\\mifan.txt"),"conf")
def load():
try:
z = open("e:\\mifan.txt","r")
content = z.read().decode("utf-8")
z.close()
m.add(content)
except:
appuifw.note(cn("未找到文件"),"error")
appuifw.app.menu=[(cn("保存"),save),(cn("读取"),load)]
点击下载代码
讲解:
首先来看 save 函数:
if appuifw.query 是提示是否保存.
text=m.get().encode("utf-8") 这里的 m.get() 的意思是get m 上面的内容,也就是获取 m 界面上的文字。 m 界面是什么?这都不知道,前面白学了吧.上面不是定义了 appuifw.app.body=m=appuifw.Text() 嘛!然后后面的 .encode("utf-8") 则是把获取到的文字以 utf-8 编码.为什么必须要编码呢?我这里不太权威的给你个说法:界面上的中文好像是以 utf-8 编码的.如果不加这个编码,可能保存会失败.
f = open("e:\\mifan.txt", "w") 这个是以写入模式打开 e:\\mifan.txt 文件,这里的 w 的意思就是write写入 。 如果不存在这个文件则自动创建.
f.write(text) 就是写入上面定义了的 text 的内容
f.close() 意思是关闭文件.文件操作完毕,一定要记得 f.close() 文件从而释放资源供其他程序使用.以前我就不知道这个,造成错误.呵呵.大家注意.
下面来讲 load 函数:
这里用到了 try except 语法,我不记得以前讲过没有.意思就是:试图 (try) 做某事,如果不可以的话 (except) 则怎么做。我们这里就是试图读取文件,如果没有此文件的话则提示未找到文件.
z = open("e:\\mifan.txt","r") 以 只读模式(r) 打开文件
content = z.read().decode("utf-8") 里面的 z.read() 是读取 z 文件里面的内容,解码为 utf-8
z.close() 关闭文件,一定别忘了哦.
m.add(content) 则是把刚才读取到的内容 add 到界面上.
打开文件的模式还有很多,
例如:
"r":只读(缺省.如果文件不存在,则提示错误)
"w":只写(如果文件不存在,则自动创建文件)
"a":附加到文件末尾,也就是追加
"r+":可读可写
大家可以自己尝试一下这些模式.好,本讲到此结束