Diferencia entre revisiones de «Usuario:Lmorillas/modulo programacion/python/intro ficheros»

De WikiEducator
Saltar a: navegación, buscar
 
(7 revisiones intermedias por el mismo usuario no mostrado)
Línea 1: Línea 1:
 +
{{DISPLAYTITLE:Introducción al uso de ficheros}}
 +
 
==Ficheros==
 
==Ficheros==
 
http://docs.python.org.ar/tutorial/inputoutput.html#leyendo-y-escribiendo-archivos
 
http://docs.python.org.ar/tutorial/inputoutput.html#leyendo-y-escribiendo-archivos
Línea 11: Línea 13:
 
* '''+''': lectura y escritura
 
* '''+''': lectura y escritura
 
* '''U''': universal newline
 
* '''U''': universal newline
 +
 +
=== Ficheros con un codec ===
 +
<source lang="python">
 +
import codecs
 +
 +
f = codecs.open('fichero.txt', 'rU', 'utf-8')
 +
for line in f:
 +
  # linea como *unicode* string
 +
</source>
 +
 
=== Ejemplos de uso ===
 
=== Ejemplos de uso ===
 
<source lang="python">
 
<source lang="python">
Línea 32: Línea 44:
 
  f.seek(0) # rebobina el fichero
 
  f.seek(0) # rebobina el fichero
 
  f.seek(0, 2) # coloca lectura/escritura al final
 
  f.seek(0, 2) # coloca lectura/escritura al final
 +
 +
 +
{{Actividad|
 +
Title=Ejercicios|
 +
TOCdepth=2|
 +
# Escribe un programa '''lista_de_clase.py''' que pida nombres de alumnos y los introduzca en un fichero ('''lista_alumnos.txt'''. Cada alumno irá en una línea diferente. Una nueva función abrirá la lista de alumnos y la mostrará en pantalla, con los alumnos ordenados por orden alfabético.
 +
# Escribe un programa '''temporizador.py''' que cada 5 segundos escriba el tiempo (hora, minuto, segudos) en una línea. El programa creará el fichero si no existe. Cada vez que tenga que escribir, abrirá el archivo, escribirá en él y lo cerrará.
 +
# Escribe un programa '''troceador.py''' que pedirá un fichero de una imagen o una canción y la troceará en archivos más pequeños de 521 bytes. El programa irá numerandolos archivos (trozo1, trozo2, etc) Un segundo programa tomará los archivos troceados y recompondrá el archivo original
 +
# Estadística letras. El programa pide la ruta de un fichero de texto. Lo lee y muestra la frecuencia de repetición de las letras, ordenadas de más repetida a menos repetida. Sólo muestra repetición de las letras y no de los signos de puntuación, números, etc. Unifica mayúsculas y minúsculas.
 +
# Pares :: impares. Creamos un fichero de texto con nombres de alumnos (cada uno en una línea). Nuestro programa copia los alumnos en línea par a un archivo pares.txt, y los impares a impares.txt.
 +
# Ejercicio [[/temperaturas | temperaturas]] de Zaragoza
 +
}}
 +
 +
== Ayudas sistema de archivos ==
 +
<source lang="python">
 +
import os
 +
os.listdir(<ruta>)      # devuelve la lista de archivos de una ruta
 +
os.getcwd()            # devuelve la ruta actual
 +
os.path.exists(<ruta>)  # comprueba si existe una ruta. Devuelve True o False
 +
 +
# explora el módulo os y os.path
 +
</source>

Última revisión de 18:49 25 nov 2011


Ficheros

http://docs.python.org.ar/tutorial/inputoutput.html#leyendo-y-escribiendo-archivos

Los ficheros en Python son objetos de tipo file creados mediante la función open(<ruta> [, <modo>])

Modos de apertura

  • r: read, lectura. Tiene que existir antes.
  • w: write, escritura. Si no, existe se crea. Si existe, se sobreescribe el contenido.
  • a: append, añadir.
  • b: binary, binario.
  • +: lectura y escritura
  • U: universal newline

Ficheros con un codec

import codecs
 
f = codecs.open('fichero.txt', 'rU', 'utf-8')
for line in f:
  # linea como *unicode* string

Ejemplos de uso

f = open('texto.txt')
for linea in f:
    print linea
f.close()
with open('texto.txt') as f:
    for linea in f:
        print linea
with open('texto.txt', 'w') as f:
    f.write('texto a escribir')
f.seek(0) # rebobina el fichero
f.seek(0, 2) # coloca lectura/escritura al final


Ejercicios

Icon activity.jpg

Ejercicios

  1. Escribe un programa lista_de_clase.py que pida nombres de alumnos y los introduzca en un fichero (lista_alumnos.txt. Cada alumno irá en una línea diferente. Una nueva función abrirá la lista de alumnos y la mostrará en pantalla, con los alumnos ordenados por orden alfabético.
  2. Escribe un programa temporizador.py que cada 5 segundos escriba el tiempo (hora, minuto, segudos) en una línea. El programa creará el fichero si no existe. Cada vez que tenga que escribir, abrirá el archivo, escribirá en él y lo cerrará.
  3. Escribe un programa troceador.py que pedirá un fichero de una imagen o una canción y la troceará en archivos más pequeños de 521 bytes. El programa irá numerandolos archivos (trozo1, trozo2, etc) Un segundo programa tomará los archivos troceados y recompondrá el archivo original
  4. Estadística letras. El programa pide la ruta de un fichero de texto. Lo lee y muestra la frecuencia de repetición de las letras, ordenadas de más repetida a menos repetida. Sólo muestra repetición de las letras y no de los signos de puntuación, números, etc. Unifica mayúsculas y minúsculas.
  5. Pares :: impares. Creamos un fichero de texto con nombres de alumnos (cada uno en una línea). Nuestro programa copia los alumnos en línea par a un archivo pares.txt, y los impares a impares.txt.
  6. Ejercicio temperaturas de Zaragoza





Ayudas sistema de archivos

import os
os.listdir(<ruta>)      # devuelve la lista de archivos de una ruta
os.getcwd()             # devuelve la ruta actual
os.path.exists(<ruta>)  # comprueba si existe una ruta. Devuelve True o False
 
# explora el módulo os y os.path