美文网首页
tkinter带界面实现指定目录生成器

tkinter带界面实现指定目录生成器

作者: 小海怪的互联网 | 来源:发表于2019-12-24 19:01 被阅读0次

    很久没有更新文章了,今天更新一个自己写的小工具

    因工作需要,需要将一些图片和表格导出后分开存放在相应的目录,之前一直是手工创建并进行压缩太累,后面就想办法用python中的tkinter实现一个带界面的小工具,来解放自己生成目录的重复性工作。

    可以实现的效果:根据当天日期自动到指定的目录中创建我们输入的数量的文件夹
    使用的打包成exe文件的软件为:pyinstaller

    先上一张效果图,有点丑,但是想要的功能基本都有了


    1
    使用方法:

    路径是自己设定好的,然后输入要生成的文件夹数量,然后再点相应的按钮就可以了
    下面放上源码,有需要的可以自己进行修改:

    # -*- coding: utf-8 -*-
    # @Time    : 2019-11-22 2time0:26
    # @Author  : scyllake
    
    import tkinter
    from tkinter import messagebox
    import os
    import time
    
    
    class App():
        def __init__(self, master, width, height):
            """初始化窗口并居中显示"""
            self.master = master
            screenwidth = master.winfo_screenwidth()
            screenheight = master.winfo_screenheight()
            size = '%dx%d+%d+%d' % (width, height, (screenwidth - width) / 2, (screenheight - height) / 2)
            # print(size)
            master.geometry(size)
    
            self.initWidgets()
    
        def initWidgets(self):
            # 图片存放目录
            self.roo_path_Label = tkinter.Label(self.master, text='图片存放目录:', font=13)
            self.roo_path_Label.grid(row=0, column=0,sticky=tkinter.E)
            # 存放目录文本框
            self.roo_path_EntryText = tkinter.StringVar()
            self.roo_path_Entry = tkinter.Entry(self.master, width = 50, font=('微软雅黑', 13),textvariable= self.roo_path_EntryText)
            self.roo_path_Entry.grid(row=0, column=1, sticky=tkinter.W)
            self.roo_path_EntryText.set(r'C:\Users\admin\Desktop\采购订单')
    
            # excel存放目录
            self.roo_excel_path_Label = tkinter.Label(self.master, text='excel存放目录:', font=13)
            self.roo_excel_path_Label.grid(row=1, column=0, sticky=tkinter.E)
            # 存放目录文本框
            self.roo_excel_path_EntryText = tkinter.StringVar()
            self.roo_excel_path_Entry = tkinter.Entry(self.master, width=50, font=('微软雅黑', 13),textvariable=self.roo_excel_path_EntryText)
            self.roo_excel_path_Entry.grid(row=1, column=1, sticky=tkinter.W)
            self.roo_excel_path_EntryText.set(r'C:\Users\admin\Desktop\采购订单excel')
    
    
    
    
    
    
            # 生成数量标签
            self.gen_dir_num_Label = tkinter.Label(self.master,  text='目录数量:', font=15)
            self.gen_dir_num_Label.grid(row=2, column=0,sticky=tkinter.E)
    
            # 生成数量文本框
            self.gen_dir_num_Entry = tkinter.Entry(self.master, width=10, font=('微软雅黑', 13, 'bold'))
            self.gen_dir_num_Entry.grid(row=2, column=1, sticky=tkinter.W)
            # self.gen_dir_num_Entry.bind("<Return>", self.gen_button_click_enter)
    
            # 生成按钮
            self.gen_dir_button = tkinter.Button(text='生成图片目录', font=('微软雅黑', 12, 'bold'), foreground='red',command =self.genMdir)
            self.gen_dir_button.grid(row=3, column=0)
            self.gen_dir_button = tkinter.Button(text='生成excel目录', font=('微软雅黑', 12, 'bold'), foreground='red',command =self.genExcelMdir)
            self.gen_dir_button.grid(row=3, column=1,sticky=tkinter.W)
    
            # 生成结果
            self.result_label = tkinter.Label(self.master, text='生成结果:', font=20)
            self.result_label.grid(row=4, column=0,sticky=tkinter.E)
    
            self.result_gen_label =tkinter.Label(self.master,font =('微软雅黑', 10, 'bold'),foreground='green')
            self.result_gen_label.grid(row = 5,column = 0,sticky=tkinter.E )
        # 生成图片目录
        def genMdir(self):
            self.root_path = self.roo_path_Entry.get()
            if not len(self.root_path) == 0:
                if not os.path.exists(self.root_path):
                    os.mkdir(self.root_path)
                self.date1 = time.strftime("%Y-%m-%d", time.localtime())
    
                if not os.path.exists(self.root_path + '\\' + self.date1 +'图片目录'):
                    os.mkdir(self.root_path + '\\' + self.date1 +'图片目录')
                self.new_path = self.root_path + '\\' + self.date1 + '图片目录'
    
    
                self.gen_nums = self.gen_dir_num_Entry.get()
                if self.gen_nums.isdigit():
                    self.gen_nums = int(self.gen_nums)
                    self.dir_lists = []
                    for i in range(1,self.gen_nums+1):
                        self.dir_lists.append('{}第{}单图片'.format(self.date1[5:], i))
    
                    for dir in self.dir_lists:
                        if not os.path.exists(self.new_path+'\\'+dir):
                            os.mkdir(self.new_path+'\\'+dir)
    
                    self.result_gen_label['text']='目录创建完成'
    
                else:
                    messagebox.showinfo(title='输入有误', message='输入的目录数量不是数字,请重新输入!')
            else:
                messagebox.showinfo(title='输入有误', message='目录未输入,请重新输入!')
    
    
    
        # 生成excel目录
        def genExcelMdir(self):
            self.roo_excel_path = self.roo_excel_path_Entry.get()
            if not len(self.roo_excel_path) == 0:
                if not os.path.exists(self.roo_excel_path):
                    os.mkdir(self.roo_excel_path)
                self.date1 = time.strftime("%Y-%m-%d", time.localtime())
    
                if not os.path.exists(self.roo_excel_path + '\\' + self.date1 +'excel目录'):
                    os.mkdir(self.roo_excel_path + '\\' + self.date1 +'excel目录')
                self.new_path = self.roo_excel_path + '\\' + self.date1 +'excel目录'
    
                self.gen_nums = self.gen_dir_num_Entry.get()
                if self.gen_nums.isdigit():
                    self.gen_nums = int(self.gen_nums)
                    self.dir_lists = []
                    for i in range(1, self.gen_nums + 1):
                        self.dir_lists.append('{}第{}单excel'.format(self.date1[5:], i))
    
                    for dir in self.dir_lists:
                        if not os.path.exists(self.new_path + '\\' + dir):
                            os.mkdir(self.new_path + '\\' + dir)
    
                    self.result_gen_label['text'] = 'excel目录创建完成'
    
                else:
                    messagebox.showinfo(title='输入有误', message='输入的目录数量不是数字,请重新输入!')
            else:
                messagebox.showinfo(title='输入有误', message='目录未输入,请重新输入!')
    
    
        # 此处原本绑定的是数量文件框输入后按enter键自动生成目录的功能,但由于一次生成2个,所以就取消了,可以根据自己实际情况来调整
        # def gen_button_click_enter(self, event):
        #     self.genMdir()
    
    if __name__ == '__main__':
        root = tkinter.Tk()
        App(root, 630, 180)
        root.maxsize(1024, 768)
        # root.minsize(700,600)
        # 设置标题
        root.title('生成图片目录和excel目录')
    
        # 程序运行
        root.mainloop()
    
    

    相关文章

      网友评论

          本文标题:tkinter带界面实现指定目录生成器

          本文链接:https://www.haomeiwen.com/subject/fsbfoctx.html