python2.7实现简单日记本,兼容windows和linux

来源:互联网 发布:中兴手机mac地址 编辑:程序博客网 时间:2024/06/06 17:54

上代码:

#coding:utf-8from Tkinter import * ;import os;#查看日记def showDiary(event):#print listBox.curselection();items = map(int, listBox.curselection()); # 获取当前被选中的项title =  listBox.get(listBox.curselection());showTitle = title[:-4]; # 从倒数第四个字符往前截取取得日记标题textVar.set(showTitle);fileObj = open(title,"r+");content = fileObj.read();text.delete("0.0", "end"); #清空if os.name == 'nt':content = content.decode("gbk");text.insert("end",content); #插入最后label.config(text = u"查看日记->"+showTitle);listBox.pack_forget();entry.pack();text.pack();saveBtn.pack(side=LEFT,anchor='sw');#日记列表def read():listBox.delete(0,END);# 清空listBox 从第一个到END(最后一个)删除了dir = os.getcwd(); # 获取当前目录list = os.listdir(dir);showText= "查看日记";if len(list) == 0:showText += "(日记本是空的)";for item in list:if os.name == "nt":listBox.insert(0,item.decode('gbk')); #插入到第一个之前else:listBox.insert(0,item); #插入到第一个之前label.config(text = showText);listBox.bind("<Double-Button-1>",showDiary); # 绑定双击事件 查看日记listBox.pack(); # 显示日记列表entry.pack_forget(); # 隐藏entrytext.pack_forget(); # 隐藏textsaveBtn.pack_forget();#保存日记def save():title = textVar.get() + ".txt"; #获取标题content = text.get("0.0","end"); #获取内容if(title != ".txt"):fileObj= open(title,"wb");if os.name == "nt":#print u"Windows系统";fileObj.write(content.encode("gbk"));else:#print u"Linux系统";fileObj.write(content);fileObj.close();label.config(text = "以保存");else:label.config(text = "请输入标题");#写日记def write():textVar.set(""); # 初始化输入框值text.delete("0.0","end"); #清空textlabel.config(text = "写日记");listBox.pack_forget(); # 隐藏listBoxentry.pack(); # 显示entrytext.pack(); # 显示textsaveBtn.pack(side=LEFT,anchor='sw');#创建日记文件夹def initDiary():dir = os.getcwd(); # 得到当前工作的目录list = os.listdir(dir); # 取得当前目录下所有的文件和文件夹haveDiary = False;for item in list:if item == "diary":haveDiary = True;if haveDiary ==  False:os.mkdir("diary"); # 创建目录os.chdir("./diary"); # 切换工作空间initDiary();root = Tk();root.geometry("500x400");root.title("程序猿日记本");saveBtn = Button(root,text="保存",command =  save); # command 表示点击的时候执行save#saveBtn.pack(side=LEFT,anchor='sw');  # 表示吧按钮设置在左下未知 side有四个值TOP,BOTTOM,LEFT,RIGHT 默认TOP quitBtn = Button(root,text="退出", command=quit); # command表示点击会退出方法quitBtn.pack(side=RIGHT,anchor='se'); #  anchor表示对齐方式 sw(southwest)西南方向  # 一共9个值 分别n(北),s(南),w(西),e(东),nw(西北),sw(西南),se(东南),ne(东北),center(中间) 默认centerwriteBtn = Button(root,text="写日记",command = write); # command表示点击时会执行的方法writeBtn.pack(side=RIGHT,anchor='se');readBtn = Button(root,text="看日记", command=read);readBtn.pack(side=RIGHT,anchor='se');textVar = StringVar(); # StringVar 是一个字符串变量类型# Entry 可以类比html 的input(type="text")entry = Entry(root,textvariable = textVar); # Entry是一个简单的输入空间 ,textvarible 表示文本框中的值 textvariable =textVar是为了方便我们后期对标题的操作text =Text(root); #Text是用来显示多行文本(可以类比html textare)listBox = Listbox(root, height = 300);label = Label(root);label.pack();root.mainloop();