Manual de Python: Lectura y escritura de ficheros

Para leer y escribir ficheros primero crearemos un objeto fichero con el comando open:

  • open( fichero, modo ): devuelve un objeto fichero. El modo puede ser r (sólo lectura, valor por defecto), w (sólo escritura, si existe un fichero del mismo nombre lo sobreescrirá), a (añadir datos al final de los datos existentes) o r+ (lectura y escritura).
    >>> f = open('test.txt', 'r+')

Veamos los métodos del objeto fichero:

  • read(): lee el contenido de un fichero y lo devuelve como cadena. Si se había alcanzado el final de fichero devuelve una cadena vacía.
    >>> f.read()
    'Esto es el fichero completo.n'
    >>> f.read()
    ''
  • readline(): lee una línea del fichero.
    >>> f.readline()
    'La 1a línea del fichero.n'
    >>> f.readline()
    'La 2a y última línea del fichero.n'
    >>> f.readline()
    ''
  • readlines(): devuelve una lista que contiene todas las líneas del fichero.
    >>> f.readlines()
    ['La 1a línea del fichero.n', 'La 2a y última línea del ficheron']
    >>> f.readlines()
    []
  • write(cadena): escribe la cadena en el fichero.
    >>> f.write('Probando, probandon')
  • tell(): indica la posición del puntero. Devuelve un entero que representa la distancia en bytes al inicio del fichero.
  • seek(desplazamiento, origen): cambia la posición del puntero sumando desplazamiento (en bytes) a un punto de referencia. El argumento origen puede valer 0 (inicio del fichero, valor por defecto), 1 (posición actual) y 2 (final del fichero).
    >>> f.seek(5)
  • close(): cierra el fichero y libera los recursos.
    >>> f.close()

El módulo pickle

Es fácil leer y escribir cadenas de un fichero pero no números, listas, diccionarios, objetos… ya que el método read() sólo devuelve cadenas. Para resolver esto Python dispone del módulo pickle, que permite convertir cualquier objeto de Python en una representación de cadena (proceso que se llama estibado) y reconstruir el objeto a partir de la representación de cadena (desestibado). El módulo pickle es el método estándar para almacenar objetos y reutilizarlos desde otros programas o futuras ejecuciones del mismo (objeto persistente).

Veamos cómo estibar y desestibar un objeto x, siendo f un fichero previamente abierto.

  • estibar un objeto
    >>> pickle.dump( x, f)
  • desestibar un objeto
    >>> x = pickle.load( f )

Artículos en la categoría "Manual de Python"

  1. Manual de Python: Cadenas
  2. Manual de Python: Listas
  3. Manual de Python: Diccionarios
  4. Manual de Python: Estructuras de control
  5. Manual de Python: Funciones
  6. Manual de Python: Módulos
  7. Manual de Python: Objetos
  8. Manual de Python: Lectura y escritura de ficheros

2 Comments:

  1. Hola…

    Tengo una duda necesito cambiar un grupo de archivos de nombre, ¿Cómo puedo yo desde el directorio donde estoy entrar a la dirección donde tengo los archivos, leerlos y tomar solo los archivos especificos que necesito para renombrarlos y pasarlos a otra carpeta?

    Ejemplo

    tengo una carpeta que se llama data en ella tengo archivos del siguiente tipo

    a1.data, a1p.data, a2.data, a2p.data, etc…
    quiero solo leer los a1.data …an.data los que tienen la p no me interesan, luego esos archivos quiero renombrarlos por ejemplo por 181.in, 182.in, etc y grabarlos en una nueva carpeta…

    Agradeceria mucho una mano ya que soy nuevo en esto de programar en python

    gracias

  2. Ayuda!!!!!!
    necesito mayor información, ¿como conviertó una expresión algebraica infija a posfija e imprimir la nueva lista postfija en una nueva lista???