Si abre el archivo pero nunca lo cierra. Y si, puedes iterar sobre un archivo, y por default usa xreadlines si no mal recuerdo.
Lo que pasa es que usa getcwd y depediendo de donde ejecute el script y donde se encuentren sus archivos va a tener resultados diferentes. Una buena idea seria imprimir la rutas para ver cual es la diferencia. El 2 de agosto de 2013 11:41, Carlos Zuniga <carlos....@gmail.com> escribió: > 2013/8/2 Jesús Curbelo Rodríguez <jescurb...@gmail.com>: > > Hola a todos, > > > > Tengo este pequeño script: > > > > import os > > import os.path > > for fileName in open('testfile.txt'): > > f = fileName # opcion 1 > > #f = cwd + os.path.sep + fileName # opcion 2 > > #f = os.path.join(os.getcwd(), fileName) # opcion 3 > > if os.path.isfile(f): > > print "Encontrado el archivo %s" % fileName > > else: > > print "No encontrado el archivo %s" % fileName > > > > donde testfile.txt incluye la lista de ficheros del directorio donde > esta el > > script. > > Ejecuto el script y no encuentra ninguno de los archivos, o lo que es lo > > mismo isfile devuelve False para todos los archivos (probado tanto en > > Windows como en Linux). Tampoco me funciona usando la opción 2 ni la > opción > > 3. > > El mismo script en TCL o batch funciona perfectamente encontrando todos > los > > archivos listados en testfile.txt > > Si pruebo desde IDLE la funcion isfile devuelve True. Si en el script > pongo > > el nombre del archivo o la ruta completa (usando en ambos casos raw > strings) > > el resultado es el correcto (isfile devuelve True). > > He estado buscando en la red pero no consigo encontrar la solución. > > > > > open() devuelve un objeto fichero y no creo que puedas hacer un bucle > sobre él directamente (o tal vez esto haga bucle sobre cada > carácter?), tienes que llamar a su método readlines. > > Prueba con: > > with open('testfile.txt', 'r') as my_file: > for file_name in my_file.readlines(): > if os.path.isfile(file_name) ... > > > Saludos > -- > A menudo unas pocas horas de "Prueba y error" podrán ahorrarte minutos > de leer manuales. > _______________________________________________ > Python-es mailing list > Python-es@python.org > http://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ >
_______________________________________________ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/