【问题标题】:Basic Photo file sorter基本照片文件分类器
【发布时间】:2020-05-13 07:27:23
【问题描述】:

我目前是一名本科实习工程师,并希望为我工作场所的员工简化文件分类流程。我正在尝试制作一个显示图像并在下方具有按钮的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()

【问题讨论】:

  • 有什么问题?

标签: python python-3.x tkinter


【解决方案1】:

我认为它可能正在打开新窗口,因为您正在破坏 root。

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 在这种情况下,根在循环之外,它将下一张照片添加到窗口,而不是替换前一张。有没有办法刷新图像文件以便更新到列表中的下一个图像?
    • @BradyGale - 这个链接有帮助吗? stackoverflow.com/questions/33302779/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-22
    • 1970-01-01
    • 2014-07-26
    • 1970-01-01
    相关资源
    最近更新 更多