Python命令行程序项目自动化GUI显示操作神器Gooey实践

       说来惭愧,接触Python也有两年的时间了,不知不觉接触到了很多特别好玩的项目,但是有时候还会是被惊艳到,原来还有这么多东西是自己还没有听说过的啊。。。。

       闲话就不多说了,这里主要是简单介绍一个Python命令行执行的程序项目自动化转化为GUI应用的神器Geopy,今天尝试了一下,着实很简单,我也就是使用了最简单的功能,有时间继续去挖掘挖掘,不过我觉得就这些表面的东西已经够我现在使用了,因为已经很方便地将命令行程序转为美观漂亮的GUI应用的。

        这里先拿来官方给的一个实例跑一下,程序内容如下:

'''
@author: Chris
Created on Dec 21, 2013
 __          __  _
 \ \        / / | |
  \ \  /\  / /__| | ___ ___  _ __ ___   ___
   \ \/  \/ / _ \ |/ __/ _ \| '_ ` _ \ / _ \
    \  /\  /  __/ | (_| (_) | | | | | |  __/
  ___\/__\/ \___|_|\___\___/|_| |_| |_|\___|
 |__   __|
    | | ___
    | |/ _ \
    | | (_) |
   _|_|\___/                    _ _
  / ____|                      | | |
 | |  __  ___   ___   ___ _   _| | |
 | | |_ |/ _ \ / _ \ / _ \ | | | | |
 | |__| | (_) | (_) |  __/ |_| |_|_|
  \_____|\___/ \___/ \___|\__, (_|_)
                           __/ |
                          |___/


This demo will show you the full range of widget
types available to Gooey
'''

from gooey import Gooey, GooeyParser
from message import display_message


@Gooey(dump_build_config=True, program_name="Widget Demo")
def main():
    desc = "Example application to show Gooey's various widgets"
    file_help_msg = "Name of the file you want to process"

    my_cool_parser = GooeyParser(description=desc)

    my_cool_parser.add_argument(
        "FileChooser", help=file_help_msg, widget="FileChooser")
    my_cool_parser.add_argument(
        "DirectoryChooser", help=file_help_msg, widget="DirChooser")
    my_cool_parser.add_argument(
        "FileSaver", help=file_help_msg, widget="FileSaver")
    my_cool_parser.add_argument(
        "MultiFileSaver", help=file_help_msg, widget="MultiFileChooser")
    my_cool_parser.add_argument("directory", help="Directory to store output")

    my_cool_parser.add_argument('-d', '--duration', default=2,
                                type=int, help='Duration (in seconds) of the program output')
    my_cool_parser.add_argument('-s', '--cron-schedule', type=int,
                                help='datetime when the cron should begin', widget='DateChooser')
    my_cool_parser.add_argument(
        "-c", "--showtime", action="store_true", help="display the countdown timer")
    my_cool_parser.add_argument(
        "-p", "--pause", action="store_true", help="Pause execution")
    my_cool_parser.add_argument('-v', '--verbose', action='count')
    my_cool_parser.add_argument(
        "-o", "--overwrite", action="store_true", help="Overwrite output file (if present)")
    my_cool_parser.add_argument(
        '-r', '--recursive', choices=['yes', 'no'], help='Recurse into subfolders')
    my_cool_parser.add_argument(
        "-w", "--writelog", default="writelogs", help="Dump output to local file")
    my_cool_parser.add_argument(
        "-e", "--error", action="store_true", help="Stop process on error (default: No)")
    verbosity = my_cool_parser.add_mutually_exclusive_group()
    verbosity.add_argument('-t', '--verbozze', dest='verbose',
                           action="store_true", help="Show more details")
    verbosity.add_argument('-q', '--quiet', dest='quiet',
                           action="store_true", help="Only output on error")

    args = my_cool_parser.parse_args()
    display_message()


def here_is_more():
    pass


if __name__ == '__main__':
    main()

        启动后的界面如下:

Python命令行程序项目自动化GUI显示操作神器Gooey实践_第1张图片

      很简洁有木有,有时候更需要的就是这样的一个简单的界面来代替传统的在CMD窗口里面输入命令来启动程序的方式。

       接下来我以自己的一个项目为例进行重构实验,具体如下:

def gcForestProgram():
    my_cool_parser = GooeyParser(description=u'深度森林模型演示实例')
    my_cool_parser.add_argument(
        "data",
        metavar=u'数据集输入:',
        help="[鸢尾花数据集]|[自定义数据集]",
        choices=['iris','data.csv','data/data.csv'],
        default='iris')
    my_cool_parser.add_argument(
        "model",
        metavar=u'模型选择:',
        help="[决策树模型]|[gcForest模型]|[同时]",
        choices=['DT','gcForest','both'],
        default='DT')
    my_cool_parser.add_argument(
        "ratio",
        metavar=u'测试集数据占比:',
        help="[0.2-0.4]",
        choices=['0.2','0.3','0.4'],
        default='0.3')
    data=args.data.lower()
    ratio=float(args.ratio)
    model=args.model.lower()
    print('model: ',model)
    if data=='iris':
        iris_data=datasets.load_iris()
        X_list=iris_data.data
        y_list=iris_data.target
    else:
        X_list,y_list=loadTxtData(data=data)
    if model=='DT':
        decisionTreeModel(X_list,y_list,ratio=ratio)
    elif model=='gcForest':
        gcforest=gcforestModel(X_list,y_list,ratio=ratio)
    elif model=='both':
        decisionTreeModel(X_list,y_list,ratio=ratio)
        print('\n===============================================\n')
        gcforest=gcforestModel(X_list,y_list,ratio=ratio)
    print('Finished!!!')

        启动后界面如下所示:
 

Python命令行程序项目自动化GUI显示操作神器Gooey实践_第2张图片

     个人感觉还是很不错的了。

      下面选择需要的参数,我们先看一下每个参数的可选空间,这里下拉框上面给出来了可选项或者选择范围,下面下拉框的内容截图如下:

Python命令行程序项目自动化GUI显示操作神器Gooey实践_第3张图片

Python命令行程序项目自动化GUI显示操作神器Gooey实践_第4张图片

Python命令行程序项目自动化GUI显示操作神器Gooey实践_第5张图片

     这里我们选择一下参数:

      数据集:iris

      模型:both

      ratio:0.3

       程序执行过程截图如下:

Python命令行程序项目自动化GUI显示操作神器Gooey实践_第6张图片

     执行结束结果截图如下:

Python命令行程序项目自动化GUI显示操作神器Gooey实践_第7张图片

     很不错的自动化GUI工具,记录一下,学习了!欢迎学习交流,欢迎推荐好玩的项目!

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(软件工具使用,编程技术)