errores durante la ejecucion

claudio.anion claudio.anion en gmail.com
Sab Feb 24 03:07:01 CET 2007


Chema Cortes escribió:
> El Sábado, 24 de Febrero de 2007 02:31, claudio.anion escribió:
>   
>> Este codigo tiene algunos errores que no puedo corregir, alguien me
>> puede ayudar?
>>     
>
> Como mínimo deberías haber puesto los errores, dónde se producen y cómo los 
> has intentado solucionar. No podemos imaginar lo que pretendes hacer, ni cómo 
> son los datos que empleas en la ejecución del programa.
>
> ¿Te has dado cuenta que en la función reg estás leyendo de un fichero abierto 
> en modo "a"?
>
> Como regla de estilo, la función reg se debería desacoplar en dos funciones. 
> También deberías considerar la orientación a objetos, aunque aún no podrás 
> porque, según parece, se trata de algún ejercicio.
> _______________________________________________
> Python-es mailing list
> Python-es en aditel.org
> http://listas.aditel.org/listinfo/python-es
>
>   
Lo modifique asi al codigo:

import os

def menu():
    op = 5

    print "\t\t\tREGISTRO DE PELICULAS"
   
    while(op<0 or op>4):
        print "1-Crear archivo."
        print "2-Agregar registros."
        print "3-Listar."
        print "4-Salir."
        op = input("Ingrese una opcion:")
   
    return op

   
def crear_arch():
    arch = open("peliculas.txt","w")
    arch.close()


def crear_reg():
    reg = open("reg.log","w")
    reg.write("1")
    reg.close()


def reg(flag,val=0):
    num = 0
    if(flag==0):
        reg = open("reg.log", "a")
        num = int(reg.read())
        reg.close()
        return num
    else:
        reg = open("reg.log", "w")
        val = str(val)
        reg.write(val)
        reg.close()

def agregar():
    path = ""
    a = []
    num = 0

    #Cargar el contenido del DVD en el txt   
    try:
        arch = open("peliculas.txt","a")

        path = raw_input("Ingrese el path a listar:")
        a = os.listdir(path)

        num = reg(0)
        aux = str("DVD#:"+num)
        arch.write(aux)
   
        for x in a:
            arch.write(x)
            arch.write("\n")
        arch.close()
    except:
        pass
   
    #Fin del acarga

    num = num+1
    reg(1,num)
       

def listar():

    arch = open("peliculas.txt","r")

    for linea in arch.readlines():
        print linea

    arch.close()   



if(__name__ =="__main__"):
   
    op = menu()

    if(op==1):
        crear_arch()
        crear_reg()
        agregar()
    elif(op==2):
        agregar()
    elif(op==3):
        listar()
    elif(op==4):
        pass

No me graba el contenido del directorio ingresado en el archivo de 
texto, y tampoco se actualiza el registro que uso para sabr cuantas 
veces se realizo la operacion.




Más información sobre la lista de distribución Python-es