python换行的代码,python中代码如何换行
Gooey实战图形界面应用的几行代码转换Python程序!1.概述今天发现微信官方账号里有个作者用Python写了个小工具,挺有意思的,代码已经分享给大家了。在文章的最后,我提到我还没有为这段代码做可视化界面。同时也希望你能把程序打包直接发给别人,这样你就可以直接用了。
如果有朋友愿意自己开发小工具,可以拿这段代码修改一下。哈哈,我就是喜欢改别人的代码,还有捐书活动,所以,不多说,开始吧!
我想用一个第三方的包,一行代码就可以把Python程序转换成图形界面应用。只需添加装饰函数和一些参数。
2.Gooey简介【Gooey Github的地址】(Chris Kiehl/Gooey:用一行(github.com)把(几乎)任何python命令行程序变成一个完整的GUI应用
一行代码将Python程序转换成图形界面应用程序。
Gooey是一个Python GUI程序开发框架,基于wxPython GUI库,使用方法类似于Python内置的CLI开发库argparse,一行代码就可以将控制台程序快速转换成GUI应用。
2.1安装方法pip install Gooey 2.2来自gooey import gooey的简单例子,Gooey parser @ Gooey def main():parser=Gooey parser(description=我的GUI程序!)parser.add _ argument (filename ,widget= filechooser) #文件选择框parser.add_argument(Date ,Widget=DateChooser) #日期选择框args=parser . parse _ args()# parameter print(args)if _ _ name _= _ main _ _ :main()2.3基本组件上面已经看到了两个简单的控件:filechooser和DateChooser,现在支持的选择器类控件有:
控件名称控件类型文件选择器文件选择器多文件选择器文件选择器目录选择器多文件选择器目录选择器文件保存器文件保存日期选择器日期选择文本框文本输入框下拉列表复选框单选组单选框2.4全局配置配置参数主要用于Gooey界面的全局配置,配置方法如下:
@ Gooey(program_name= demo )def function():Pass与program _ name参数配置相同。Gooey还支持许多其他配置。以下是其支持的参数列表:
参数介绍advancedBoolean切换是显示所有设置还是只显示show_configBoolean的简化版本。跳过所有配置,立即运行程序languagestr。指定从gooey/languages目录中读取哪个语言包。显示在program_namestrGUI窗口中的程序名。默认情况下将显示Sys.argv[0]。显示在program _ descriptions strsettings窗口顶栏中的描述性文本。默认值是从ArgumentParser获得的。窗口的默认大小。Required_cols1设置所需参数的行数。Optional_cols2设置可选参数行数。Dump_build_configBoolean将设置以JSON格式保存在硬盘上,以供编辑/重用。Richtext_controlsBoolean对终端控制序列的开/关控制台支持(对字体粗细和颜色的有限支持)3。程序转换在原程序的基础上,将要输入的路径信息封装到一个函数start()中,在函数中加入我们的decorator @Gooey()。
在函数主体中添加一个path参数,在界面上通过文件夹选择器组件选择目录,就完成了我们程序的GUI改造。
从gooey导入gooey,gooey parser # encoding:指定编码方式Program _ name:Program name Language:Language(默认为英文)#作为装饰符添加在函数前面(core) @Gooey(encoding=utf-8 ,Program _ name= gadget for sorting files-v 1 . 0 . 0 ,Language= Chinese )def start():parser=Gooey parser()# path :要传递的参数变量help: hint widget: control type(此处使用文件夹选择器)parser.add_argument(path ,Help=请选择文件Widget=DirChooser) #一定要用双引号或者没有这个属性args=parser . parse _ args()return args if _ _ name _ _= _ _ main _ :args=start()#传递的参数变量path=args.path #使用参数变量print(path) 4 . 完整代码#-*-编码:utf-8-*- #导入相关库导入OS导入Glob导入Shutil from Gooey导入Gooey,Gooey Parser #定义了一个不同文件类型不同文件夹的文件字典,总共有9个类别。File_dict={Picture: [jpg , png , gif , webp], Video: [RMVB , MP4 , AVI , MKV , FLV], Audio: [CD Document: [XLS , XLSX , CSV , Doc , DocX , PPT , PPTX , PDF , TXT],压缩文件:[7z , ACE , BZ ,常用格式:[json , xml , md , ximd],程序脚本:[py ,判断该文件是否存在于字典file_dict中;#如果存在,返回对应的文件夹名;如果不存在,将文件夹命名为“未知分类”;Def func(后缀):for name,file _ dict.items()中的type _ list:if suffix . lower()in type _ list:return name return unknown class ification @ Gooey(encoding= utf-8 ,Program _ name= gadget for filing-v 1 . 0 . 0 \ n \ nWeChat官方账号:数据分析与统计之美,language=中文)def start():parser=Gooey parser()parser . add _ argument( path ,Help=请选择要排序的文件路径:, widget=DirChooser) #一定要用双引号或者没有这个属性args=parser . parse _ args()# print(args,Flush=True) # Pit: flush=True打包时,返回args if _ _ name _ _= _ _ main _ _ :args=start()path=args . path #递归获取要处理的路径下的所有文件和文件夹。 对于glob.glob中的file(f“{ path }/* */*,recursive=true): #由于我们是对文件进行分类,所以需要在这里进行分类。If.path.isfile (file): #由于isfile()函数的作用,获得了每个文件的完整路径。这里调用basename()函数直接获取文件名;file _ name=OS . path . basename(file)后缀=file _ name.split(。)[-1] #确定“文件名”是否在字典中。Name=func(后缀)# print (func(后缀))#根据每个文件的分类,创建相应的文件夹。如果OS . path . exists(f“{ path } \ { name }”):OS . mkdir(f“{ path } \ { name }”)#将文件复制到它们对应的文件夹中。Shuttil.copy (file,f“{ path } \ { name }”)5。打包为exe时,使用我们最常用的pyinstaller。
# install pip install pyinstaller#打包时执行命令(其中F为大写,w为小写)pyinstaller -F Tool.py -w
生成的exe在目录下,执行效果如下
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。