Python: Gestión de Archivos

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:

Y métodos como:

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.

[PYTHON]
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()
[/PYTHON]

Tags: , , , ,


  • Enmanuel Moreira

    Sabes que tengo una duda con respecto a la lectura de archivos, y es que, tengo un archivo de configuracion, que primero busco si existe con os.path.isfile(“archivo.conf”), y ejecuto un proceso en donde crea el archivo con los siguientes datos:

    Servidor=localhost
    Usuario=yo
    Password=yo
    Puerto=5432

    Con lo que he podido leer el archivo con la siguiente sentencia:

    archivo=open(“archivo.conf”,”r”)
    for line in archivo:
    print line

    E imprime la configuracion, con sus respectivos retornos del carro, pero lo que quiero es que me tome del signo “=” hacia la derecha, con el objeto de pegar esos datos que extraigo del archivo.conf a un textbox de Qt, como hago en este caso?

    Reply

  • Luciano

    Entiendo que lo que necesitas es un substring a partir de un caracter dado, por lo tanto creo que este ejemplo creo que resuelve tu problema:

    s=”server=localhost”
    print s[s.find(“=”)+1:]

    Es sencillo de entender 😉

    Reply

  • Swicher

    Enmanuel, quizás ya no te sirva de mucho pero para gestionar archivos de configuración resulta mas practico usar el modulo ConfigParser.

    Reply

Leave a Reply to Swicher Cancel reply

Your email address will not be published. Required fields are marked *