python tk 文件管理器
时间: 2023-09-02 13:12:07 浏览: 91
以下是一个简单的Python Tkinter文件管理器示例代码:
```python
import os
import tkinter as tk
from tkinter import filedialog
class FileManager:
def __init__(self, root):
self.root = root
self.root.title("文件管理器")
self.current_directory = os.getcwd()
# 创建控件
self.path_label = tk.Label(self.root, text="当前路径:" + self.current_directory)
self.path_label.pack()
self.file_listbox = tk.Listbox(self.root, width=50, height=20)
self.file_listbox.pack()
self.button_frame = tk.Frame(self.root)
self.button_frame.pack()
self.new_folder_button = tk.Button(self.button_frame, text="新建文件夹", command=self.create_folder)
self.new_folder_button.pack(side=tk.LEFT)
self.delete_button = tk.Button(self.button_frame, text="删除", command=self.delete_file)
self.delete_button.pack(side=tk.LEFT)
self.open_button = tk.Button(self.button_frame, text="打开", command=self.open_file)
self.open_button.pack(side=tk.LEFT)
self.refresh_button = tk.Button(self.button_frame, text="刷新", command=self.refresh_list)
self.refresh_button.pack(side=tk.LEFT)
# 初始时加载文件列表
self.refresh_list()
def refresh_list(self):
self.file_listbox.delete(0, tk.END)
files = os.listdir(self.current_directory)
for file in files:
self.file_listbox.insert(tk.END, file)
def create_folder(self):
new_folder_name = filedialog.askdirectory(initialdir=self.current_directory, title="新建文件夹")
if new_folder_name:
os.makedirs(new_folder_name)
self.refresh_list()
def delete_file(self):
selected = self.file_listbox.curselection()
if selected:
filename = self.file_listbox.get(selected[0])
path = os.path.join(self.current_directory, filename)
if os.path.isfile(path):
os.remove(path)
elif os.path.isdir(path):
os.rmdir(path)
self.refresh_list()
def open_file(self):
selected = self.file_listbox.curselection()
if selected:
filename = self.file_listbox.get(selected[0])
path = os.path.join(self.current_directory, filename)
if os.path.isfile(path):
os.startfile(path)
elif os.path.isdir(path):
self.current_directory = path
self.path_label.config(text="当前路径:" + self.current_directory)
self.refresh_list()
if __name__ == "__main__":
root = tk.Tk()
file_manager = FileManager(root)
root.mainloop()
```
该文件管理器使用了Tkinter的一些基本控件,包括标签(Label)、列表框(Listbox)、框架(Frame)和按钮(Button)。其中,列表框用于展示当前目录下的所有文件和文件夹,按钮用于触发相应的操作(新建文件夹、删除、打开和刷新)。
在初始时,程序会加载当前目录下的所有文件和文件夹,并显示在列表框中。当用户单击“新建文件夹”按钮时,程序会弹出一个文件选择框,用户可以在其中选择新建文件夹的位置和名称。当用户单击“删除”按钮时,程序会删除列表框中当前选中的文件或文件夹。当用户单击“打开”按钮时,程序会打开列表框中当前选中的文件,如果是文件夹,则会进入该文件夹并显示其中的文件和文件夹。当用户单击“刷新”按钮时,程序会重新加载当前目录下的所有文件和文件夹。
注意,该示例代码仅为演示用途,可能存在一些问题,如删除文件夹时没有考虑其是否为空等。在实际应用中,需要根据具体需求进行修改和完善。
阅读全文