首页 - 教程专区 - PyS60教程 - 米饭教程    

----------------
文本文件的读写
--------------------

应の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+":可读可写
大家可以自己尝试一下这些模式.好,本讲到此结束

下一编
上一编

首页 - 教程专区 - PyS60教程 - 米饭教程