python实现图形界面文件拷贝功能并以进度条输出文件拷贝进度。
时间: 2024-09-30 19:07:22 浏览: 35
Python实现拷贝多个文件到同一目录的方法
在Python中,你可以使用Tkinter库创建图形用户界面,结合shutil模块来实现文件拷贝功能,并利用tqdm库来显示进度条。以下是一个简单的示例:
```python
import tkinter as tk
from tkinter import messagebox
import os
import shutil
from tqdm import tqdm
def copy_files(src, dst):
with tqdm(total=os.path.getsize(src), unit='B', desc="Copying", unit_scale=True) as pbar:
shutil.copyfileobj(open(src, 'rb'), open(dst, 'wb'), length=1024)
pbar.update(os.fstat(pbar.file.fileno()).st_size - pbar.n)
def gui_copy_progress():
root = tk.Tk()
root.withdraw() # 隐藏主窗口,只显示进度条
src_path = tk.filedialog.askopenfilename(title="选择源文件")
if src_path:
dst_path = tk.filedialog.asksaveasfilename(title="选择目标位置")
if dst_path:
try:
copy_files(src_path, dst_path)
messagebox.showinfo("完成", "文件复制成功!")
except Exception as e:
messagebox.showerror("错误", str(e))
if __name__ == "__main__":
gui_copy_progress()
```
在这个例子中,`tk.filedialog`用于弹出文件选择框让用户选择源文件和目标位置。`copy_files`函数内部,通过`tqdm`的`update`方法更新进度条,直到文件完全拷贝完毕。
阅读全文