python 界面二

来源:互联网 发布:软件平台下载 编辑:程序博客网 时间:2024/06/11 20:50

参照小甲鱼零基础学习python课后作业

1.输入密码

1.passwordbox的使用 passwordbox(msg, title,default=’默认的密码’, image=None)

import easygui as gdef passwordbox(msg, title):    msg = g.passwordbox(msg, title,default='默认的密码', image=None)    print(msg) # 默认的密码passwordbox('content', 'title')

2.multpasswordbox的使用multpasswordbox(msg, title, fields, values)

import easygui as gdef multpasswordbox(msg, title, fields, values):    msg = g.multpasswordbox(msg, title, fields, values)    print(msg) # ['张三', '123456']fields = ('用户名','密码')values = ('张三', '123456')multpasswordbox('输入密码', '标题', fields, values)

2.显示文本

import easygui as gimport osdef readfileshoutext():    boxtitle = '选择文件'    boxcontent = '读取文件内容'    filepath = g.fileopenbox(boxcontent, boxtitle,default = 'D:/*.txt',filetypes='[*.txt]')    file = open(filepath)    filetext = file.read()    texttitle = '文件标题'    texttip = filepath + ' 的内容为:'    boxtext = g.textbox(texttip,texttitle,text=filetext,codebox=0)    if filetext != boxtext[:-1]:        btn = ('覆盖保存','放弃保存','另存为...')        choice = g.buttonbox('文件内容发生改变了,请选择如下操作:','警告',btn)        if choice == '覆盖保存':            with open(filepath,'w') as oldfile:                oldfile.write(boxtext[:-1])                oldfile.close()        if choice == '放弃保存':            pass        if choice == '另存为...':            newfilepath = g.filesavebox(default='.txt')            newfile = open(newfilepath,'w')            newfile.write(boxtext[:-1])            newfile.close()readfileshoutext()

改变文件弹出选择

3.目录与文件

1.diropenbox选择目录的路径 diropenbox(msg, title, default = None)

import easygui as gdef diropenbox(msg, title):    msg = g.diropenbox(msg, title, default = None)    print(msg) # F:\android_doc 目录地址diropenbox('目录', '标题')

2.fileopenbox 选择文件的路径 fileopenbox(msg, title, default = ‘*’,filetypes = None)

default = ‘D:/python/program/a*.py’ 表示D盘program下以a开头.py结尾的所有文件
default = ’ ** ’ 表示所有文件

filetypes = [‘*.py’] 显示以.py结尾的文件
filetypes = None 显示所有文件

import easygui as gdef fileopenbox(msg, title):    msg = g.fileopenbox(msg, title, default = '*',filetypes = None)    print(msg) # D:\python\program\b.py 文件地址fileopenbox('选择文件', '标题')

3.filesavebox 选择保存文件的路径 filesavebox(msg, title, default = filename,filetypes = None)

default 文件的名字

import easygui as gdef filesavebox(filetext, filename, msg, title):    filepath = g.filesavebox(msg, title, default = filename,filetypes = None)    filecontent = open(filepath,'w')    filecontent.write(filetext)    filecontent.close()    print(filepath) # D:\python\program\a.txtfilename = 'a.txt'filetext = '这是一个测试文件的内容'filesavebox(filetext,filename, '选择目录保存文件', '标题')

4.保存设置数据

有个小问题,读出来的是个啥??待了解

import osfrom easygui import *class Settings(EgStore):    def __init__(para,filename):        para.user = ''        para.age = ''        para.filename = filename        para.restore()settings = Settings('D:/seting.txt')settings.user = '张三'settings.age = str(20)settings.store()a = open('D:/seting.txt','rb')print(a.read())

5.界面显示异常

import easygui as gtry:    a = 5/0except:    g.exceptionbox()

6.选择某一个目录统计代码行数

import easygui as gimport osdef show(path):    lines = 0    total = 0    text = ''    for i in soft_list:        lines = soft_list[i]        total += lines        text += '[%s]源文件%d个,源代码%d行\n'%(i,file_list[i],lines)    text += '它们分别为:\n'    for key,value in countdict.items():        text += key + '的代码为%s行' % value + '\n'    title = '统计结果'    msg = '目前共%d行代码!' % total    g.textbox(msg,title,text)def calc_code(file):    lines = 0    f =  open(file,'r',encoding = 'utf-8')    print('正在计算:%s' % file)    lines = len(f.readlines())    return linesdef search_file(file_dir):    os.chdir(file_dir) #改变当前工作目录到指定的路径    for item in os.listdir(os.curdir):        ftype = os.path.splitext(item)[1] # 得到文件后缀名        if ftype in filetype:            lines = calc_code(item)            try:                file_list[ftype] +=1            except:                file_list[ftype] = 1            #统计代码行数            try:                soft_list[ftype] += lines            except:                soft_list[ftype] = lines            countdict.setdefault(item,lines)        if os.path.isdir(item):            search_file(item) # 递归            os.chdir(os.pardir) # 返回上一层目录filetype = ['.py','.xml','.java']file_list = {}soft_list = {}countdict = {}path = g.diropenbox('选择要统计的代码文件:') # 文件路径search_file(path)show(path)