前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >tkinter带界面实现指定目录生成器

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

作者头像
小海怪的互联网
发布2019-12-26 17:44:58
8410
发布2019-12-26 17:44:58
举报

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

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

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

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

1

使用方法:

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

代码语言:javascript
复制
# -*- 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()
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 可以实现的效果:根据当天日期自动到指定的目录中创建我们输入的数量的文件夹
  • 使用的打包成exe文件的软件为:pyinstaller
  • 使用方法:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档