Leer y escribir un archivo con Python


Para abrir un archivo en Python se utiliza la función open. Ésta devuelve un objeto del tipo archivo, que tiene métodos y atributos.
Entre sus atributos se pueden citar:

  • mode: modo de apertura del archivo
  • name: nombre del archivo
  • closed: estado del archivo (abierto o cerrado)
Y métodos como:

  • seek: mueve la posición actual dentro del archivo
  • tell: confirma que la posición actual ha cambiado
  • read: lee un número especificado de bytes (o todo el archivo)
  • readline: lee una línea
  • readlines: lee todas las líneas y devuelve una lista
  • write: escribe en un archivoclose: cierra un archivo
Veamos el siguiente ejemplo (basado en los ejemplos de Inmersión en Python). La aplicación recibe por parámetro el nombre de un archivo MP3, del mismo se lee la información del ID3 tag y permite al usuario el ingreso de una nuevo comentario.

import sys
def nstring(s, n):
  s= s[:n]
  return s + (' ' * (n - len(s)))
if(len(sys.argv) > 1):
  filename = sys.argv[1]
  print "Abro archivo: " + filename
else:
  print "Pase por argumento el nombre de un archivo MP3"
  exit()
try:
  mp3=open(filename,'r+b')
  try:
    mp3.seek(-128,2)
    print mp3.read(3)
    print "Nombre..........: " + mp3.read(30)
    print "Artista.........: " + mp3.read(30)
    print "Album...........: " + mp3.read(30)
    print "Anio............: " + mp3.read(4)
    print "Comentario......: " + mp3.read(30)
    print "Genero..........: " + mp3.read(1)
    comentario = raw_input("\nSu comentario...: ")
    mp3.seek(-31,2)
    mp3.write(nstring(comentario,30))
    mp3.seek(-31,2)
    print "Nuevo comentario: " + mp3.read(30)
  finally:
    mp3.close()
except IOError:
  print ("IO Error");
  exit()

Es todo, espero les sirva este sencillo ejemplo... =)

No hay comentarios:

Publicar un comentario