Les traigo una cosa muy curiosa que me pasa, no se si es mi programa, la función 'os.listdir()' , un error, o soy estúpido...
Les traigo este script, que funciona para moverse entre carpetas de forma visual, esta en desarrollo, el programa, lista todos los archivos y carpetas, tu selecionas una carpeta, NO un archivo, y lista los archivos de esa carpeta, pero si lo vuelvo a hacer en otro directorio me da error!
Les traigo el script para que lo miren:
Código:
from Tkinter import *
import sys
import os
v0=Tk()
v0.geometry("1000x1000")
def colocar_scrollbar(listbox,scrollbar):
scrollbar.config(command=listbox.yview)
listbox.config(yscrollcommand=scrollbar.set)
scrollbar.pack(side=RIGHT, fill=Y)
listbox.pack(side=LEFT, fill=Y)
frame1=Frame(v0)
frame1.pack()
scroll1=Scrollbar(frame1)
list1=Listbox(frame1)
list1.pack()
colocar_scrollbar(list1,scroll1)
mitexto=StringVar()
label1=Label(v0,textvar=mitexto)
label1.pack()
def cargarlistbox(lista,listbox):
ind,largo=0,len(lista)
while ind < largo:
listbox.insert(END,lista[ind])
ind+=1
ListaNombres = os.listdir(os.getcwd())
def imprimir_en_label():
label1.after(100, imprimir_en_label) # Llamada recursiva con .after
ind = list1.curselection()
if list1.curselection() != ():
sel = list1.get(ind)
mitexto.set(sel) #
def funcion_milagro():
ind = list1.curselection()
if list1.curselection() != ():
sel2 = list1.get(ind)
print sel2 #Todo esto funciona bien,
#pero al segundo cambio de directorio
rut = os.getcwd() + '\\' + sel2
#os.system('cd /d ' + rut)
print rut
print rut
list1.delete(0, END)
archis = os.listdir(rut) # Me salta error como que no existe el directorio
#funcionando bien a la primera
print archis
for imagen in archis:
list1.insert(END,imagen)
b1=Button(v0,text="Siguiente", command = funcion_milagro, width=15).place(x=435, y=180)
cargarlistbox(ListaNombres,list1)
imprimir_en_label()
funcion_milagro()
v0.mainloop()
Guardenlo como .py para visualizar el error en consola
Es como que no existiese ese directorio, aparte e puesto un par de prints por si acaso era error de otra funcion o variable, pero no por lo que e visto es el listdir creo.
Ojala alguien me pueda dar una solución seria de mucho agrado