tkinter帶界面實(shí)現(xiàn)指定目錄生成器

很久沒有更新文章了,今天更新一個(gè)自己寫的小工具

因工作需要,需要將一些圖片和表格導(dǎo)出后分開存放在相應(yīng)的目錄,之前一直是手工創(chuàng)建并進(jìn)行壓縮太累,后面就想辦法用python中的tkinter實(shí)現(xiàn)一個(gè)帶界面的小工具,來解放自己生成目錄的重復(fù)性工作。

可以實(shí)現(xiàn)的效果:根據(jù)當(dāng)天日期自動(dòng)到指定的目錄中創(chuàng)建我們輸入的數(shù)量的文件夾
使用的打包成exe文件的軟件為:pyinstaller

先上一張效果圖,有點(diǎn)丑,但是想要的功能基本都有了


1
使用方法:

路徑是自己設(shè)定好的,然后輸入要生成的文件夾數(shù)量,然后再點(diǎn)相應(yīng)的按鈕就可以了
下面放上源碼,有需要的可以自己進(jìn)行修改:

# -*- 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')






        # 生成數(shù)量標(biāo)簽
        self.gen_dir_num_Label = tkinter.Label(self.master,  text='目錄數(shù)量:', font=15)
        self.gen_dir_num_Label.grid(row=2, column=0,sticky=tkinter.E)

        # 生成數(shù)量文本框
        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)

        # 生成結(jié)果
        self.result_label = tkinter.Label(self.master, text='生成結(jié)果:', 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']='目錄創(chuàng)建完成'

            else:
                messagebox.showinfo(title='輸入有誤', message='輸入的目錄數(shù)量不是數(shù)字,請(qǐng)重新輸入!')
        else:
            messagebox.showinfo(title='輸入有誤', message='目錄未輸入,請(qǐng)重新輸入!')



    # 生成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目錄創(chuàng)建完成'

            else:
                messagebox.showinfo(title='輸入有誤', message='輸入的目錄數(shù)量不是數(shù)字,請(qǐng)重新輸入!')
        else:
            messagebox.showinfo(title='輸入有誤', message='目錄未輸入,請(qǐng)重新輸入!')


    # 此處原本綁定的是數(shù)量文件框輸入后按enter鍵自動(dòng)生成目錄的功能,但由于一次生成2個(gè),所以就取消了,可以根據(jù)自己實(shí)際情況來調(diào)整
    # 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)
    # 設(shè)置標(biāo)題
    root.title('生成圖片目錄和excel目錄')

    # 程序運(yùn)行
    root.mainloop()

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容