Cześć, jak już niektórzy zauważyli, nie umiem programować :(
Mam kłopot. W pracy napisałem sobie prosty programik który sprawdza czy jakiś plik ma któryś z boków większy niż 32k pikseli. Pików są tysiące a w zasadzie to dziesiątki tysięcy.
Stworzyłem coś takiego :
from PIL import Image
import glob
image_list = {}
for filename in glob.iglob('C:\karton nr 101*/*.jpg'):
Image.MAX_IMAGE_PIXELS = 1000000000
im = Image.open(filename)
if im.size > (32393, 32000) :
image_list[str(filename)] = str(im.size)
print(image_list)
for key, value in image_list.items():
print(key + "\t" + value)```
Generalnie super, bo działa.. Ale ścieżkę trzeba podać ręcznie w kodzie, więc jako że z programu w sumie pewnie kilka osób chciałby by korzystać u mnie to postanowiłem zmierzyć się z tematem i napisać program z GUI który będzie wczytywał ścieżkę i podawał ją do funkcji którą przedstawiłem powyżej. Brzmi prosto niby..
I teraz tak rozbiłem program na 2 moduły jeden to moduł z podaną wyżej funkcją, którą zmodyfikowałem w ten sposób :
def check_size(path):
"""Dodałem parametr path i użyłem go w miejscu w którym trzeba wprowadzić ścieżkę"""
image_list = {}
for filename in glob.iglob(path + '/*.jpg'): # assuming gif
Image.MAX_IMAGE_PIXELS = 1000000000
im = Image.open(filename)
if im.size > (32393, 32000):
image_list[str(filename)] = str(im.size)```
Teraz najgorsze tzn moduł w którym staram się stworzyć okno wprowadzania ścieżki i wywołać funkcje:
import tkinter as tk
from check import check_size
window = tk.Tk()
window.title("be znaczenia")
text = tk.StringVar()
label = tk.Label(window, textvariable=text, padx=200, pady=20)
label.pack() #
description = tk.Label(window, text="Podaj ścieżkę:").place(x=20, y=10)
name = tk.Entry(window, width=40)
name.place(x=100, y=10)
path=name.get()
button = tk.Button(window, text="Szukaj!", command=check_size(path))
button.pack()
tk.mainloop()```
Problem jest taki, że nie mam zielonego pojęcia jak do path
wprowadzić wartość z widgetu entry. Tak na prawdę, to nawet nie wiem czy wartość, która zostanie wprowadzona z entry do path, będzie działać tak jak sobie wymyśliłem. Tzn czy to będzie zwykły ciąg znaków, który można do siebie dodać.
Ktoś coś? Pomocy? Jeśli ktoś wie jak to zrobić prosiłbym o wytłumaczenie, ewentualnie wskazanie źródła w którym jest to dość jasno wytłumaczone.
Z góry dziękuje i mam nadzieję, że nie proszę o za dużo;)