python使用Tkinter庫製作文件和文件夾創建功能
在下這廂有禮了
第一節 學習Tkinter庫
python 版本 Python 3.7.1 Tkinter是自帶的庫
大概花費時間:一週左右,抽空學習的知識分享。
網上有很多的Tkinter庫的講解博客和視頻,都挺不錯,基礎部分就可以很快掌握;
視頻(免費)我推薦:http://www.php.cn/course/628.html 看完後就基本懂得了如何去學習Tkinter的庫
博客我參考:https://blog.csdn.net/zjiang1994/article/details/53513377 主要參考 目錄的查詢
Tkinter網站:effbot.org/tkinterbook/tkinter-index.htm#class-reference (複製粘貼到網址上就可以)官網是學習最好的一手資料。
第二節 開始有目的的做東西
我的目標:是模仿window的文件管理,去創建一個文件和對應的.md文件,並且在其中寫上一句話。
根據要求,我需要做如下的設計思路:
- 目錄的查詢
- 目錄的文件夾和文件的添加
- Tkinter的可視化窗口設計
其實,核心就是目錄的查詢,其他的都是簡單的,對我來說。
第三節 代碼設計
import os
from tkinter import *
from tkinter.filedialog import askdirectory
import tkinter.messagebox
import tkinter as tk
#目錄查詢
def selectPath():
path_ = askdirectory()
path.set(path_)
#目錄文件夾和文件添加
def create_file():
print(folder.get()) #接收用戶輸入數據打印
print(path.get()) #接收用戶輸入數據打印
dirs = path.get() + "\\"+folder.get()
if not os.path.exists(dirs):
os.makedirs(dirs)
file = open(dirs+'\\'+folder.get()+".md","w")
file.write("file name is "+folder.get()+" author:Applezhang")
#彈窗文件名創建成功
tkinter.messagebox.showinfo('提示','文件名創建成功')
else:
#彈窗文件文件創建失敗
tkinter.messagebox.showerror('提示','文件名存在,請換一個')
root = Tk()
root.title('創建文件v1.0')
root.geometry('400x380')
# 畫布添加圖片(爲了好看點)
canvas = tk.Canvas(root, height=400, width=470)
image_file = tk.PhotoImage(file='11.gif')
image = canvas.create_image(0,0, anchor='nw', image=image_file)
canvas.pack(side='top')
path = StringVar() #存儲用戶輸入信息
folder = StringVar() #存儲用戶輸入信息
Label(root,text = "目標路徑:").place(x=50, y= 250)
Entry(root, textvariable = path).place(x=110, y= 250)
Button(root, text = "路徑選擇", command = selectPath).place(x=265, y= 250)
Label(root,text = "文件名:").place(x=50, y= 300)
Entry(root,textvariable = folder).place(x=110, y= 300)
Button(root, text = "確定", command = create_file).place(x=265, y= 300)
root.mainloop()
圖片提供:
顯示結果
創建目錄演示:選擇目錄,添加文件夾123和文件123
然後查看文件夾create_file中確實有了123的文件夾和123.md文件,並且文件中有了我們寫的flag
第四節 優化代碼讓看起來像個程序員寫的
import os
import tkinter as tk
from tkinter import *
import tkinter.messagebox
from tkinter.filedialog import askdirectory
class createFile(object):
"""
設計創建文件和文件夾
"""
def __init__(self,master):
master.title('創建文件v1.0')
master.geometry('400x380')
# welcome image
canvas = tk.Canvas(master, height=400, width=470)
self.image_file = tk.PhotoImage(file='11.gif')
self.image = canvas.create_image(0,0, anchor='nw', image=self.image_file)
canvas.pack(side='top')
self.path = StringVar()
self.folder = StringVar()
Label(master,text = "目標路徑:").place(x=50, y= 250)
Entry(master, textvariable = self.path).place(x=110, y= 250)
Button(master, text = "路徑選擇", command = self.selectPath).place(x=265, y= 250)
Label(master,text = "文件名:").place(x=50, y= 300)
Entry(master,textvariable = self.folder).place(x=110, y= 300)
Button(master, text = "確定", command = self.create_file).place(x=265, y= 300)
def selectPath(self):
path_ = askdirectory()
self.path.set(path_)
def create_file(self):
#print(self.folder.get()) #捕捉用戶輸入信息
#print(self.path.get()) #捕捉用戶輸入信息
dirs = self.path.get() + "\\"+self.folder.get()
if not os.path.exists(dirs):
os.makedirs(dirs)
file = open(dirs+'\\'+self.folder.get()+".md","w")
file.write("file name is "+self.folder.get()+" author:Applezhang")
#彈窗文件名創建成功
tkinter.messagebox.showinfo('提示','文件名創建成功')
else:
#彈窗文件文件創建失敗
tkinter.messagebox.showerror('提示','文件名存在,請換一個')
def main():
root = Tk()
app = createFile(root)
root.mainloop()
if __name__ == "__main__":
main()