Salvesen. Skrevet 28. januar 2015 Del Skrevet 28. januar 2015 Hei, Holder på å lage ett enkelt script som skal vise bilder på en info skjerm men har kommet over ett problem jeg ikke forstår meg på rett og slett. Det som er saken er at jeg hele tiden sjekker mappen som inneholder bilder, og om det er endringer(kommer inn flere filer, eller minker) vill jeg at den skal vise "de nye" bildene i mappen så listen over gamle filnavn blir slettet og ny laget. Men når den kommer til det nye filnavnet får jeg TclError: no such file or directory men filen er jo såklart der så jeg forstår ikke hvorfor jeg ikke klarer å åpne den? Noen formeninger? Det skjer det samme om jeg legger inn nytt bilde i mappen eller fjerner for så å legge tilbake. Men scriptet håndterer det fint ift listen. Lenke til kommentar
Enthroner Skrevet 28. januar 2015 Del Skrevet 28. januar 2015 Skudd i blinde, men er det noe veldig annerledes med filnavnet? Kan være biblioteket ikke støtter filnavnet for åpning? Lenke til kommentar
Salvesen. Skrevet 28. januar 2015 Forfatter Del Skrevet 28. januar 2015 (endret) Skudd i blinde, men er det noe veldig annerledes med filnavnet? Kan være biblioteket ikke støtter filnavnet for åpning? Skulle ønske det, de er helt "like" 1.gif, 2.gif, 3.gif and so on :/ Det er forrsten samme problemet når jeg restarter hele røkla, må fjerne filen fra mappen før det går bra igjen. Også verdt å nevne at filen fungerte fra starten av, helt til jeg fjernet fra mappen og la til igjen. Endret 28. januar 2015 av Salvesen. Lenke til kommentar
Imsvale Skrevet 28. januar 2015 Del Skrevet 28. januar 2015 Prøv å skrive ut egne feilmeldinger/diagnostikk, som det eksakte filnavnet (og full adresse) den prøver å åpne. Kan være noe du har oversett, og at filnavnet/-adressen faktisk er annerledes enn du tror. Lenke til kommentar
tomsi42 Skrevet 28. januar 2015 Del Skrevet 28. januar 2015 Kan det være noe med store og små boksver i navnet på katalogen. Du må gjerne vise frem litt kode også. 1 Lenke til kommentar
Salvesen. Skrevet 28. januar 2015 Forfatter Del Skrevet 28. januar 2015 Kan det være noe med store og små boksver i navnet på katalogen. Du må gjerne vise frem litt kode også. from itertools import cycle import os try: import Tkinter as tk except ImportError: class App(tk.Tk): def __init__(self,x, y, delay): print "init running" tk.Tk.__init__(self) self.geometry('+{}+{}'.format(x, y)) self.delay = delay self.image_files = [] self.new_image = [] for path, subdirs, files in os.walk('C:\kitfinder2\pictures'): for filename in files: f = filename self.image_files.append(f) self.new_image.append(f) self.pictures = cycle((tk.PhotoImage(file=image), image) for image in self.image_files) self.picture_display = tk.Label(self) self.picture_display.pack() def UpdateImages(self): self.new_image = [] for path, subdirs, files in os.walk('C:\kitfinder2\pictures'): for filename in files: f = filename self.new_image.append(f) if len(self.image_files) != len(self.new_image): print "Difference!" self.image_files = [] for path, subdirs, files in os.walk('C:\kitfinder2\pictures'): for filename in files: f = filename self.image_files.append(f) self.pictures = cycle((tk.PhotoImage(file=image), image) for image in self.image_files) print "image updated!:" + str(self.image_files) self.show_slides() def show_slides(self): print self.image_files '''cycle through the images and show them''' img_object, img_name = next(self.pictures) self.picture_display.config(image=img_object) self.title(img_name) self.after(self.delay, self.UpdateImages) def run(self): self.mainloop() delay = 3500 x = 100 y = 50 app = App( x, y, delay) app.UpdateImages() app.run() Dette er kun ett eksempel og sjekk og slikt kommer til å bli på en annen måte, har bare samlet sammen noe røsk for å få testet. Det som skjer er at når jeg starter programmet blar den igjennom bildene(1.gif og 2.gif). Legger jeg til ett bilde(3.gif) så oppdaterer listene seg som forventet men når bildet skal vises får jeg tclError og jeg aner ikke hvorfor. Starter jeg på ny får jeg samme feil, fjerner jeg først bilde fra mappe og starter på¨ny fungerer det fint igjen til jeg evt legger inn nytt bilde. Noen tips? Exception in Tkinter callback Traceback (most recent call last): File "C:\Python27\lib\lib-tk\Tkinter.py", line 1486, in __call__ return self.func(*args) File "C:\Python27\lib\lib-tk\Tkinter.py", line 533, in callit func(*args) File "start_stopp.py", line 56, in UpdateImages self.show_slides() File "start_stopp.py", line 60, in show_slides img_object, img_name = next(self.pictures) File "start_stopp.py", line 53, in <genexpr> for image in self.image_files) File "C:\Python27\lib\lib-tk\Tkinter.py", line 3326, in __init__ Image.__init__(self, 'photo', name, cnf, master, **kw) File "C:\Python27\lib\lib-tk\Tkinter.py", line 3282, in __init__ self.tk.call(('image', 'create', imgtype, name,) + options) TclError: couldn't open "2.gif": no such file or directory Lenke til kommentar
Imsvale Skrevet 28. januar 2015 Del Skrevet 28. januar 2015 Er det sånn å forstå at du legger til 3.gif, og så får du ikke åpnet 2.gif lenger? Eller var det 2.gif du hadde lagt til i eksempelet? Lenke til kommentar
Salvesen. Skrevet 28. januar 2015 Forfatter Del Skrevet 28. januar 2015 Er det sånn å forstå at du legger til 3.gif, og så får du ikke åpnet 2.gif lenger? Eller var det 2.gif du hadde lagt til i eksempelet? når jeg kjører scriptet ligger 1 og 3 i mappen(tilfeldig). legger så til 2 og jeg får feilen. Starter så på ny(med alle filene i mappen), samme feil. fjerner jeg å starter på ny går det helt fint. Lenke til kommentar
Salvesen. Skrevet 29. januar 2015 Forfatter Del Skrevet 29. januar 2015 Det var appendingen min til listen som var feil, dette fungerte: self.image_files.append(os.path.join(path, filename)) 1 Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå