很久沒有更新文章了,今天更新一個(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()