Trabajar con archivos

Python implementa una manera muy sencilla (en su forma básica) de abrir archivos; la función open(). El primer argumento que debes pasarle a dicha función es el nombre de tu archivo, mientras que el segundo es lo que se conoce como modo. Dispones de varios de ellos, pudiendo usarse de forma combinada:
  • 'r' o modo lectura, permite leer un archivo existente.
  • 'w' o modo de escritura, crea un nuevo archivo si no existe o sobreescribe completamente el contenido de otro si existe ya previamente.
  • 'a' o modo append, abre el archivo para escribir a continuación del contenido que ya tenga.
  • '+' o modo de lectura y escritura, permite hacer ambas cosas simultáneamente.
  • 'U' o modo universal, trata de salvar los problemas que surgen en los códigos de final de línea, que son distintos según sea el sistema operativo que los use.
  • 'b' o modo binario, abre archivos binarios que no son simplemente de texto.

Una vez abierto tu archivo, para su lectura, puedes usarlo como si de un elemento iterable se tratara (de hecho lo es).
Por ejemplo, imagina que tienes un documento nombres.txt con el siguiente contenido:

Pedro Pérez
Pedro Gil
Mónica Carabias
Si escribes el siguiente código

documento = open("nombres.txt", "r")
for linea in documento:
    print linea
obtendrás la siguiente salida en pantalla:

Pedro Pérez
 
Pedro Gil
 
Mónica Carabias

Curioso, ¿no? Al recorrer el archivo, la variable linea contiene, en efecto, cada una de las líneas del documento de texto. Sin embargo, al mostrarlas en pantalla, las separa a su vez con otra línea en blanco. ¿Por qué ocurre? La razón es que, en cada pasada del bucle, la propia línea incluye el código que marca el final de línea ( '\n' en Linux), lo que unido al cambio de línea que incorpora la propia instrucción print produce el resultado final. Para eliminar ese código de final de línea (y los posibles espacios en blanco que tengas detrás) siempre puedes usar el método rstrip() de las cadenas de texto. Observa:

documento = open("nombres.txt", "r")
for linea in documento:
    print linea.rstrip()
lo que produce

Pedro Pérez
Pedro Gil
Mónica Carabias

Hay muchas otras formas de trabajar con archivos. ¡Consulta la documentación!