Вы находитесь на странице: 1из 24

ENTRADA Y SALIDA:

ARCHIVOS

Fabio Araya Chavarría


Agenda

A. Entrada y salida: archivos.


A. Conceptos y organización física de archivos
B. Operaciones de archivos: lectura y escritura
C. Procesamiento binario/textual: apertura/cierre y
lectura/escritura
¿Qué es un archivo?
Se conoce como archivo o fichero a un conjunto organizado de
unidades de información (bits) almacenados en un dispositivo.

Se les denomina de esa manera como metáfora a partir de los


archivos tradicionales de oficina, escritos en papel, ya que
vendrían a ser su equivalente digital.

Cada archivo posee una identificación única o nombre, la cual


puede ser modificada o asignada a voluntad del usuario o del
programador, y una extensión que determina qué tipo de archivo
es y qué funciones cumple. Por ejemplo: Command.com
¿Para qué sirve un archivo?
Los archivos pueden tener numerosas funciones.
Desde simplemente contener información de manera ordenada, como
los archivos de texto, y permitir el acceso a ella por parte de
programas determinados, hasta archivos ejecutables que
desencadenan cierta secuencia de acciones (y de otros archivos) que
tienen como resultado una acción concreta.

Desde apagar el computador hasta iniciar un videojuego, todo lo que


ocurre en un sistema informático ocurre a través de archivos
interconectados ejecutándose por turno en la memoria del
computador.
¿Qué es una carpeta?
Los archivos de un sistema informático tradicional están organizados
en carpetas (o directorios) y subcarpetas (o subdirectorios), como una
forma de categorizarlos y distinguir los que pertenecen a una
aplicación o programa de los que pertenecen a otro. Las carpetas no
son más que etiquetas para representar los compartimentos de la
información.
Características de un archivo

Representables. Los archivos suelen tener un nombre de máximo 255


caracteres y suelen ser representados en sistemas operativos de interfaz gráfica
(como Windows) por un ícono determinado.

Únicos por directorio. En una misma carpeta o directorio no pueden existir dos
archivos idénticos con el mismo nombre. Cuando ello ocurra alguno de los dos
habrá de cambiar levemente su nombre o en todo caso será remplazado uno por
otro.

Modificables. Excepto aquellos que expresamente hayan sido protegidos


contra modificación, como es el caso de los archivos vitales del sistema
informático, que no deben sufrir cambios pues éste se desestabilizaría, lo común
es que los archivos puedan borrarse, crearse, modificarse, renombrarse a
voluntad o necesidad.

Poseen un tamaño. De acuerdo a la cantidad de información que un archivo


contenga, éste tendrá un tamaño o “peso”, mensurable en Kb, Mb o incluso Gb.
Mientras más grande sea el archivo, más capacidad deberá tener el soporte donde
se encuentre.
Ejemplos de archivo
Algunos ejemplos típicos de archivos son:

 Archivos de texto. Usualmente identificados con extensiones .doc,


.txt, .rtf o .odt, contienen secuencias de caracteres alfanuméricos
dispuestos en secuencias específicas, que denominamos
“documentos”.

 Archivos ejecutables. Usualmente terminados en .exe (executable,


“ejecutable” en inglés), .com (command, “comando”) o .bat (batch,
“lote”), son aquellos que disparan las acciones, como ejecutar una
aplicación o un videojuego.

 Archivos de imagen. Apellidados .jpg, .gif o .tiff normalmente, son


imágenes cuya información recompuesta se traduce en una
imagen, ilustración o fotografía.
Manejo de archivos

Existen dos formas básicas de acceder a un archivo.

Texto Se procesa
línea por línea.

Acceso Archivo

Binario Se procesa
byte por byte.
Manejo de archivos
En líneas generales los archivos se leen y se escriben en
3 pasos:

Lectura:
1. Abrir (open)
2. Leer (read, readlines, readline)
3. Cerrar (close)

Escritura:
1. Abrir (open)
2. Guardar (write)
3. Cerrar (close)
Leyendo un archivo

open(filename[, mode[, bufsize]])

Ejemplo:
fh = open('mi_archivo.txt','r')

La 'r' indica "modo de lectura”

 read(n): Lee n bytes, por defecto lee el archivo


entero.
 readline(): Devuelve str con una sola linea.
 readlines(): Devuelve una lista con una cadena
como elemento por cada línea del archivo.
Leyendo un archivo
fh = open('archivo.txt')
contenido = fh.read()
print ("Ejemplo de fh.read(): \n",contenido)
Leyendo un archivo
fh = open('archivo.txt')
contenido = fh.readlines()
print ("Ejemplo de fh.readlines(): \n",contenido)
Leyendo un archivo

contenido = ""
fh = open('archivo.txt')
while True:
line = fh.readline()
contenido += line
if line=="":
break

print ("Ejemplo fh.readline() con ciclo while: \n",contenido)


# Para todos los casos:
fh.close()
Modo de apertura de un archivo
Indicador Modo de apertura Ubicación del puntero
r Solo lectura Al inicio del archivo
rb Solo lectura en modo binario Al inicio del archivo
r+ Lectura y escritura Al inicio del archivo
rb+ Lectura y escritura en modo binario Al inicio del archivo
Solo escritura. Sobreescribe el archivo si existe. Crea el
w Al inicio del archivo
archivo si no existe
Solo escritura en modo binario. Sobreescribe el archivo si
wb Al inicio del archivo
existe. Crea el archivo si no existe
Escritura y lectura. Sobreescribe el archivo si existe. Crea el
w+ Al inicio del archivo
archivo si no existe

Escritura y lectura en modo binario. Sobreescribe el archivo


wb+ Al inicio del archivo
si existe. Crea el archivo si no existe
Añadido (agregar contenido). Crea el archivo si éste no Si el archivo existe, al final de éste. Si el
a
existe archivo no existe, al comienzo
Añadido en modo binario (agregar contenido). Crea el Si el archivo existe, al final de éste. Si el
ab
archivo si éste no existe archivo no existe, al comienzo
Añadido (agregar contenido) y lectura. Crea el archivo si Si el archivo existe, al final de éste. Si el
a+
éste no existe. archivo no existe, al comienzo
Añadido (agregar contenido) y lectura en modo binario. Si el archivo existe, al final de éste. Si el
ab+
Crea el archivo si éste no existe archivo no existe, al comienzo
Modo de apertura de un archivo
Propiedades del objeto file
closed: retorna True si el archivo se ha cerrado. De lo contrario, False.
mode: retorna el modo de apertura.
name: retorna el nombre del archivo
encoding: retorna la codificación de caracteres de un archivo de texto

Ejemplo:
archivo = open("archivo.txt", "r+")
contenido = archivo.read()
nombre = archivo.name
modo = archivo.mode
encoding = archivo.encoding
archivo.close()

if archivo.closed:
print ("El archivo se ha cerrado correctamente")
else:
print ("El archivo permanece abierto")

print("\n")
print(nombre,"\n",modo,"\n",encoding)
Métodos del Objeto File.
seek(byte): Mueve el puntero hacia el byte indicado. Ejemplo: archivo.seek(0)

read(): Lee todo el contenido de un archivo. Si se le pasa la longitud de bytes, leerá solo el
contenido hasta la longitud indicada.
Ejemplo: contenido = archivo.read()

readline(): Lee una línea del archivo. Ejemplo: linea1 = archivo.readline()

readlines(): Lee todas las líneas de un archivo.

tell(): Retorna la posición actual del puntero. Ejemplo: linea1 = archivo.readline()

write(cadena): Escribe cadena dentro del archivo. Ejemplo: archivo.write('Nueva linea')

writelines(secuencia): Secuencia será cualquier iterable cuyos elementos serán escritos uno por
línea.
Ejemplo:
lista = ['Línea 1\n', 'Línea 2']
archivo.writelines(lista)

close(): Cierra un archivo. Ejemplo: archivo.close()


Escribiendo en un archivo
Modos de escritura:
• w: Write, graba un archivo nuevo, si existe, lo borrar.
• a: Append (agregar), agrega información al final de un archivo pre-
existente. Si no existe, crea uno nuevo (uso típico: logs).s

Ejemplo.
fh = open('datos1.txt','w')
fh.write('1\n2\n3\n4\n5\n')
fh.close()
Escribiendo en un archivo
cadena1 = 'Datos' # declara cadena1
cadena2 = 'Secretos' # declara cadena2

# Abre archivo para escribir


archivo = open('datos1.txt','w')

# Escribe cadena1 añadiendo salto de línea


archivo.write(cadena1 + '\n')

# Escribe cadena2 en archivo


archivo.write(cadena2)

# cierra archivo
archivo.close
Crear archivo pdf
#Importamos los modulos
necesarios
from reportlab.pdfgen import
canvas

doc = canvas.Canvas("Hola
Mundo.pdf")

#Escribimos una cadena de Texto


dentro del documento
doc.drawString(100, 750, "Hola
Mundo!!!")

#Guardamos el documento
doc.save()
Crear archivo pdf
Para poder crear documentos en Python se pueden utilizar las librerías de
ReportLab. Su web es esta: http://www.reportlab.com/software/opensource/

El paquete pdfgen es el nivel más bajo para generar documentos PDF. Un


programa pdfgen es en realidad un conjunto de instrucciones para dibujar un
documento en una secuencia de páginas.

La interfaz que provee de operaciones de dibujo es el objeto Canvas. El


Canvas hay que verlo como una hoja de papel en blanco, donde tenemos
coordenadas carterianas (X,Y), y el origen (0,0) se encuentra en la esquina
inferior izquierda de la página.
Escribir archivos csv
import csv

# colores
colors = [

# nombre, valor hexadecimal (rgb)


('negro', '#000000'),
('blanco', '#FFFFFF'),
('rojo', '#FF0000'),
('verde', '#00FF00'),
('azul', '#0000FF'),
('amarillo', '#FFFF00'),
('magenta', '#FF00FF'),
('cian', '#00FFFF')
]

with open('colores.csv', 'w+') as f: # el flag 'b' es requerido en ciertas plataformas


writer = csv.writer(f)
writer.writerows(colors)
Leer archivos csv
import csv

with open('empleados.csv') as archivo_empleado:


reader = csv.reader(archivo_empleado, delimiter=';')
for row in reader:
print(row)
Preguntas ?

Вам также может понравиться