首页 > 解决方案 > 基本照片文件分类器

问题描述

我目前是一名本科实习工程师,并希望为我工作场所的人简化文件分类流程。我正在尝试制作一个显示图像并在下方具有按钮的python程序,而不是按下时将该照片移动到特定文件夹中。

到目前为止最大的困难是我没有使用 python 的经验,但那是公司使用的,所以我被锁定了。我能够创建一个杂乱的程序,显示一个带有照片的窗口,但尚未添加按钮,但这应该没问题。我目前担心的是,它每次对照片进行排序时都会打开一个新窗口,就好像窗口是照片而不是照片是窗口的一部分一样。我将在下面发布我凌乱的代码,但我们将不胜感激。请记住,我是一个完整的 python 初学者,我唯一类似的经验是在 C# 中。

import os
import shutil
import tkinter as tk
import PIL
from PIL import ImageTk, Image

source = 'C:\\Source\\'  


for file in os.listdir(source):
    root = tk.Tk()
    root.geometry("1920x1080")
    photo = Image.open(source+file).resize((750,500), Image.ANTIALIAS)
    img = ImageTk.PhotoImage(photo)
    panel = tk.Label(root, image = img)
    panel.image = img
    panel.pack(side = "top", fill = "both")
    print('Enter Destination Directory')
    dest = input()
    shutil.move(source+file, dest)
    root.destroy()

标签: pythonpython-3.xtkinter

解决方案


您需要在主循环root之外定义和销毁变量。for每次循环时,都会创建一个新tk.Tk对象,然后将其销毁。


推荐阅读