Sivo 悉见

第一个Python小程序

匿名 · 更新于 2017/3/8

#coding:utf-8
import sys;
reload(sys);
sys.setdefaultencoding('utf-8');


import chardet;
code_list = ['utf-8','GB2312','gbk','windows-1252'];


import wx;

#读取文件将各种不同编码统一转为unicode编码  防止中文乱码
def deCodeStr(tmpstr):
    code = chardet.detect(tmpstr)['encoding'];
    print code;
    if code in code_list:
        if code == 'windows-1252':
            return tmpstr.decode('gbk');
        else:
             return tmpstr.decode(code);
    else:
        return tmpstr;

#载入文件
def load(event):
    file = open(filename.GetValue(),'r');
    t = deCodeStr(file.read());
    contents.SetValue(t);
    file.close();

#保存文件
def save(event):
    file = open(filename.GetValue(),'w');
    file.write(contents.GetValue());
    file.close();

app = wx.App();
win = wx.Frame(None,title="My First Python App",size = (410,335));
bkg = wx.Panel(win);



loadButton = wx.Button(bkg,label = "Open");
loadButton.Bind(wx.EVT_BUTTON,load);

saveButton = wx.Button(bkg,label = "Save");
saveButton.Bind(wx.EVT_BUTTON,save);

filename = wx.TextCtrl(bkg);



contents = wx.TextCtrl(bkg,style=wx.TE_MULTILINE | wx.HSCROLL);

hbox = wx.BoxSizer();
hbox.Add(filename,proportion=1,flag = wx.EXPAND);
hbox.Add(loadButton,proportion=0,flag=wx.LEFT,border=5);
hbox.Add(saveButton,proportion=0,flag=wx.LEFT,border=5);

vbox = wx.BoxSizer(wx.VERTICAL);
vbox.Add(hbox,proportion=0,flag=wx.EXPAND | wx.ALL,border = 5);
vbox.Add(contents,proportion=1,flag=wx.EXPAND | wx.LEFT | wx.BOTTOM | wx.RIGHT, border = 5);

bkg.SetSizer(vbox);

win.Show();
app.MainLoop();