tengo menos de un año de experiencia en programación mientras aprenden acerca de la lectura y escritura de archivos me encontré con este tutorial: http://www.penzilla.net/tutorials/python/fileio/escribir en un archivo con Python - '' Si bien no se ha hecho:" La confusión me
El tutorial. ofrece el siguiente ejemplo como un simple script para crear y escribir en un archivo:
# Let's create a file and write it to disk.
filename = "test.dat"
# Let's create some data:
done = 0
namelist = []
while not done:
name = raw_input("Enter a name:")
if type(name) == type(""):
namelist.append(name)
else:
break
# Create a file object:
# in "write" mode
FILE = open(filename,"w")
# Write all the lines at once:
FILE.writelines(namelist)
# Alternatively write them one by one:
for name in namelist:
FILE.write(name)
FILE.close()
he copiado el código y corrió a través de un Python 2.7.3 Shell me pide repetidamente para introducir cadenas que se anexan a una. lista que se escribirá en un archivo (esto tiene sentido para mí). Lo que no entiendo es la condición para salir del ciclo While ("While not done:") . Pensé que esto significaba que escribo hecho en el prompt para salir del ciclo y luego escribir el archivo, pero hecho no tiene ningún efecto. Entonces pensé que cualquier cadena que no se ingresara en el prompt debería romper el ciclo y escribir el archivo. No pude hacer que el ciclo se rompiera en absoluto; para cualquier cosa que ingresé en el prompt, me volvieron a preguntar con "Enter a name:".
Al eliminar el ciclo While y conservar la instrucción if/else, obtuve el código para que funcione con un solo mensaje. ¿Puede alguien decirme lo que no estoy entendiendo aquí? Supongo que es un concepto bastante simple que no se explicó en el tutorial porque se suponía que era obvio. Como "hecho" es una palabra tan común, no pude encontrar ningún significado específico de Python para ella.
Ese código es horrible. Deberías encontrar otro tutorial. – Daenyth
Ese código es horrible. Desafía convenciones de nomenclatura, utiliza una condición de bucle engañosa y sin sentido, comprueba tipos (sin tener en cuenta la herencia), está mal (nunca puede salir del bucle, a menos que se produzca una excepción pero no se capte) y enseña que falta, ingenuo acercamiento a la gestión de recursos (debería usar 'con open (...)', o 'finally: f.close()'). Además, la página parece tener 6 años de antigüedad. – delnan
Holy Moses, ¿podemos linchar al autor de ese tutorial? – favoretti