猫史档案馆


【翰书院】翰书院第一个Python小程序发布!

用户:HJS落雪HJS落雪查看:2 回复:4 评论:2 创建时间:2020-04-04T14:52:36


(默哀1分钟)

今天我们迎来翰书院第一个Python小程序

它的功能是让用户输入一个文件后缀(比如.bcm)

程序给出它是什么类型的文件

代码开源喽~

import json, time, easygui, os

usual_ext = {'图像文件': ['.png', '.jpg', '.JPG', '.Png', '.bmp', '.jpeg', '.gif', '.pcx', '.tiff', '.tif', '.dxf', '.ico', '.cgm', '.cdr', '.wmf', '.eps', '.emf', '.pict', '.ai', '.psd', '.pdd', '.flc', '.fli', '.tga'],
             '音频文件': ['.cd', '.wave', '.aiff', '.au', '.mp3', '.mid', '.wma', '.ra', '.rmx', '.vqf', '.avi', '.mpg', '.amr', '.ape', '.flac', 'aac', '.tak'],
             '视频文件': ['.avi', '.mp4', '.mpeg-4', '.mpg-4', '.mov', '.qt', '.asf', '.rm', '.navi', '.di喵', '.mpeg', '.mpg', '.dat', '.rmvb', '.ogg', '.3gp', '.mod', '.flv', '.mkv', '.mts', '.MTS', '.swf'],
             'Word文档': ['.doc', '.docx'],
             'Excel表格': ['.xls', '.xlsx'],
             'PPT演示': ['.ppt', '.pptx'],
             'WPS文档': ['.wps'],
             'PDF文件': ['.pdf'],
             'Publisher出版物': ['.pub'],
             'Access数据库': ['.mdb', '.accdb'],
             '应用程序(附件)': ['.exe', '.ipa', '.dll', '.inf', 'Config'],
             '程序源文件(附件)': ['.c', '.cpp', '.py', '.java', '.bcm', '.r', '.h', '.lib', '.dsp', '.dsw', '.cs', '.asp', '.aspx', '.php', '.jsp', '.e', '.ec', '.edb', '.js', '.pas', '.pyc'],
             '文本和json文件': ['.json', '.txt', '.rtf'],
             '网页文件': ['.html', '.htm', '.jsp', '.phtml', '.xml'],
             '字体文件': ['.eot', '.otf', '.fon', '.font', '.ttf', '.ttc', '.woff', '.woff2', '.fng', '.fog'],
             '压缩文件': ['.rar', '.zip', '.arj', '.z', '.cab', '.lzh', '.ace', '.tar', '.gz', '.uue', '.bz2', '.jar', '.isz', '.7z', '.pal'],
             '快捷方式':['.lnk','.pif','.url']}


def find():
    while True:
        name = easygui.enterbox('请输入一个文件扩展名(如“.doc”,退出程序点击cancel):', '翰书院--文件管理--数据库管理')
        if name == None:
            stop_running()
        if len(name) == 0:
            easygui.msgbox('您还未输入' '翰书院--文件管理--数据库管理', '重试')
            break
        if not '.' in name:
            easygui.msgbox('输入不是扩展名,扩展名格式:“.letters”', '翰书院--文件管理--数据库管理', '重试')
            break
        for i in name:
            if u'\u4e00' <= i <= u'\u9fff':
                easygui.msgbox('输入不是扩展名,扩展名格式:“.letters”', '翰书院--文件管理--数据库管理', '重试')
                _break = True
                break
            else:
                _break = False
        if _break:
            break
        find_out = False
        for key in usual_ext:
            if name in usual_ext[key]:
                easygui.msgbox('{} 属于{}'.format(name, key), '翰书院--文件管理--数据库管理', '好的')
                find_out = True
        if not find_out:
            easygui.msgbox('没有找到{}'.format(name), '翰书院--文件管理--数据库管理', '好的')
    find()


def import_data():
    try:
        time.sleep(1)
        with open('usual_ext.json', 'w') as f:
            json.dump(usual_ext, f)
        easygui.msgbox('加载完成', '翰书院--文件管理--数据库管理', '好的')
        _class = list(usual_ext.keys())
        ext = []
        txt = '最新数据库:\n'
        for key in usual_ext:
            ext.append(', '.join(usual_ext[key]))
        for i in range(len(_class)):
            txt += '{}:{}\n'.format(_class[i],ext[i])
        easygui.msgbox(txt, '翰书院--文件管理--数据库管理', '好的')
        stop_running()
    except:
        again = easygui.ynbox('加载失败,是否重试', '文件管理--数据库管理', ('重新加载', '退出程序'))
        if again == None:
            easygui.msgbox('您未选择,默认为直接退出', '文件管理--数据库管理', '好的')
            stop_running()
        elif again:
            import_data()
        else:
            stop_running()


def stop_running():
    easygui.msgbox('程序即将关闭', '翰书院--文件管理--数据库管理', '关闭')
    os._exit(0)


def main_program():
    way = easygui.ynbox('您需要以下哪项操作?', '翰书院--文件管理--数据库管理', ('重新加载数据库', '手动查找文件扩展名'))
    if way == None:
        stop_running()
    elif way:
        import_data()
    else:
        find()

main_program()

好像某些行太长了?

(本作品是由翰书院成员Albert钟创作)

过些日子会发布本作品的教程

敬请期待~


回复

上一页1 页 / 共 1下一页
Albert钟Albert钟

好好好

点赞1


评论


Albert钟Albert钟

过些日子就会发教程哦,很快就会教大家怎么做了!!

 

点赞1


评论


Albert钟Albert钟

center_image

顺便说一下哦,有兴趣的也可以加入我们!!

点赞0


评论


HJS落雪HJS落雪

dd

点赞0


评论