[python] archivos externos, manejo

Iniciado por Division-x, 14 Enero 2007, 15:40 PM

0 Miembros y 1 Visitante están viendo este tema.

Division-x

pego aqui tambien el mni tuto que hice para mi pagina prog-python.org espero que guste... :D

En este "mini" tutorial, voy a explicar un poco la manera de trabajar con archivos externos a python.

Comencemos:

nombre = 'nuevo.txt' #creamos el archivo, mas bien le asignamos un nombre
archivo=open(nuevo.txt, 'w') #lo abrimos
archivo.close() #lo cerramos


en la primera linea lo que hemos hecho es llamar la creación de un objeto *.txt que luego, en la segunda linea abrimos, notese que lo abrimos en modo escritura ('w'), y en la tercera linea lo cerramos con el comando "close".
Haste aquí es muy sencillo, ahora lo que haremos es meterle algo a ese archivo que antes hemos creado

nombre = 'nuevo.txt'
contenido = 'aquí podriamos poner un raw_input, por ejemplo.'
archivo=open(Nuevo, 'w')
archivo.write(contenido) #añadimos el contenido de la cadena
archivo.close()


observemos que con la sentencia "write" es con la que añadimos algo al objeto creado anteriormente, por lo demas, el codigo es identico al anterior
ahora lo que necesitamos es devolver lo que hemos añadido


nombre = 'nuevo.txt'
archivo=open(nuevo, 'r') #observese la "r"
salida = archivo.readlines() #le ordenamos leer el archivo
archivo.close() #cerramos
print salida #devolvemos el resultado


aquí abrimos el archivo en modo "r" read, no en modo "w" write, puesto que no vamos a escribir nada, solo necesitamos leerlo, este ejemplo, pese a que si eres nuevecillo en python, lo veras comodo, descubriras que es mucho mas comodo si declaras una funcion.... Pero eso lo dejo a vuestra libre eleccion.

S4lu2!!!

Ragnarok

Pues ya que estás, ¿sabes porqué nunca me funciona esto?:

with open('myfile.txt', 'w') as f:

No sé si hay que hacer un import o algo pero me da error ("SyntaxError: invalid syntax") señalando la 'n' de open. Si lo pongo como comentas arriba funciona bien, pero quería hacer esto porque me parece bastante más cómodo cuando son cosas pequeñas.
No olvidéis leer las normas generales, además de las específicas de cada tablón.sgae, ladrones

Division-x

no te he entendido muy bien, pero creo que viene a ser siendo esto.....

f = open( "myfile.txt", "w" )

Ragnarok

No, eso que pones sí que me funciona, pero quiero hacer lo otro, para que lo cierre solo aunque salte alguna excepción o pase cualquier cosa.
No olvidéis leer las normas generales, además de las específicas de cada tablón.sgae, ladrones

SirLanceCC

Truco: Pueden hacer esto

archivo = open('loquesea.txt', 'r')
for linea in archivo:
    print linea

Y asì en el ciclo for, automàticamente, se leera linea por linea!!