curso python basico
Entrada, Salida y Archivos.
En ésta parte del curso, miraremos en detalle las maneras en que el usuario interaccionar con el programa o script.
Imprimir en pantalla
La manera mas sencilla de obtener una salida desde la pantalla, es por medio del comando print, como ya lo habíamos mencionado anteriormente no nos detendremos mucho en el.- Ejemplo:
#Para python 2.7 print "esto es un ejemplo del uso de print" #Para python 3 print("esto es un ejemplo del uso de print")
Leer desde el teclado
Una característica muy útil de python, es que puede pedir al usuario que introduzca cierta información por medio del teclado. Python tiene un comando para leer datos desde la entrada estándar (casi siempre teclado). El comando input(), imprime la cadena de caracteres que se ponga dentro de los paréntesis, luego recibe datos desde la entrada estándar, y se los entrega (generalmente se asigna a una variable).- Ejemplo:
#Pregunto al usuario su nombre, y lo guardo en la variable Nom. Nom=input('¿Cual es tu nombre? ') #Utilizo la variable Nom print('Gusto en conocerte ',Nom)
Nota: Para la función input todo entra como cadenas de caracteres, luego si la entrada se va a usar como otra cosa (i.e. float, ent, etc.) se debe de debe de hacer una conversión o cast.
Abrir y cerrar archivos
Python maneja los archivos como objetos file, dichos objetos cuando son creados, se manipulan utilizando el operador ".".
La función open
Antes de realizar cualquier operación sobre un archivo, lo primero que se debe de hacer abrir dicho archivo. La función open crea un objeto tipo file, que se usa para llamar los métodos asociados a un archivo.Sintaxis
objecto_file = open(nombre_archivo [, modo_uso][, buffering])
- objecto_file: Nombre de la variable que va a guardar el objeto tipo file.
- nombre_archivo: Nombre del archivo que se va a abrir.
- modo_uso: Cual es el uso que se le va a dar a dicho archivo.
r Abre el archivo en modo "solo lectura", situá el puntero al inicio del archivo rb Abre el archivo en modo "solo lectura binaria", situá el puntero al inicio del archivo r+ Abre el archivo en modo "lectura y escritura", situá el puntero al inicio del archivo rb+ Abre el archivo en modo "lectura y escritura binario", situá el puntero al inicio del archivo w Abre el archivo en modo "solo escritura", sobre escribe el archivo si existe, y sino crea uno nuevo wb Abre el archivo en modo "solo escritura binario", sobre escribe el archivo si existe, y sino crea uno nuevo w+ Abre el archivo en modo "lectura y escritura", sobre escribe el archivo si existe, y sino crea uno nuevo wb+ Abre el archivo en modo "lectura y escritura binaria", sobre escribe el archivo si existe, y sino crea uno nuevo a Abre el archivo en modo "solo append", situá el puntero al final del archivo, y sino existe crea uno nuevo ab Abre el archivo en modo "solo append", situá el puntero al final del archivo, y sino existe crea uno nuevo a+ Abre el archivo en modo "append Y lectura", situá el puntero al final del archivo, y sino existe crea uno nuevo ab+ Abre el archivo en modo "append Y lectura binario", situá el puntero al final del archivo, y sino existe crea uno nuevo - buffering: Uso de memoria temporal. Si se fija en 0 (cero) no hay buffering, si se pone en 1 (uno) se guarda de a una linea en la memoria temporal, mientras se accede al archivo. Para un entero mayor a uno, se lleva a cabo ese número de lineas de buffering, y para enteros negativos, el buffering se hace según el sistema (comportamiento por defecto.).
Atributos del objeto file
Una vez se crea un objeto file, se puede usar el operador"." para acceder a sus diferentes propiedades- Ejemplo:
# Abro el archivo resultados.txt, en modo escritura binario, y se lo asigno a la variable archivo1 archivo1 = open("resultados.txt", "wb") print ("Nombre del archivo: ", archivo1.name) print ("¿Está cerrado? : ", archivo1.closed) print ("Modo de apertura : ", archivo1.mode) archivo1.close()
Método close()
El método close() de un objeto file, bota toda la información que no se ha escrito, y cierra el archivo. Luego de usar close() no se puede leer o escribir el archivo.Método write()
El método write() escribe cualquier cadena de caracteres en el archivo abierto. Las cadenas de caracteres en python no solo pueden guardar texto, también binarios.- Ejemplo: Modifico un poco el ejemplo anterior
#Pregunto al usuario su nombre, y lo guardo en la variable Nom. Nom=input('¿Cual es tu nombre? ') # Abro el archivo resultados.txt, en modo escritura, y se lo asigno a la variable archivo1 archivo1 = open("resultados.txt", "w") print ("Nombre del archivo: ", archivo1.name) print ("¿Está cerrado? : ", archivo1.closed) print ("Modo de apertura : ", archivo1.mode) archivo1.write("Nombre\n") #Escribe la cadena de caracteres "Nombre", y \n es un salto de linea archivo1.write(Nom) #Escribe la cadena de caracteres guardada en la variable Nom archivo1.write("\n") #Escribe un salto de linea archivo1.close() print ("¿Está cerrado? : ", archivo1.closed)
Nota: Para obtener el directorio de trabajo, se usa os.getcwd() de la librería os.
Método read()
Lee una cadena de caracteres desde un archivo abierto. Python también lee archivos binarios.- Ejemplo:
# Abro el archivo en modo lectura y escritura y lo asigno a la variable Archivo2 Archivo2 = open("resultados.txt", "r+") str = Archivo2.read(10) #leo 10 bytes del archivo print ("los primeros 10 bytes del archivo: ", str) # Cierro el archivo Archivo2.close()
Posición dentro del archivo
El método tell()
tell() dice cual es la posición actual dentro del archivo.posicion = obj_file.tell()
El método seek(offset , ref)
- offset: número de posiciones que se moverá el puntero.
- ref: Desde que posición de referencia
- 0: Desde el inicio del archivo.
- 1: Desde la posición actual.
- 2: Desde el final del archivo.
- Ejemplo:
# Abre el archivo arch = open("resultados.txt", "r+") str = arch.read(6) print ("Los primeros 6 bytes : ", str) # Mira la posición actual pos = arch.tell() print ("posición actual : ", pos) str2 =arch.read() apell= input('Apellido: \n') arch.write(apell) # Devuelvo el puntero hasta el inicio pos = arch.seek(0, 0) str = arch.read() print ("Todo el archivo completo desde el inicio : \n", str) # Cierro arch.close()
Sistema de archivos desde python
El módulo os tiene todas las utilidades para realizar la administración de archivos desde python.Renombrado de archivos
os.rename(nombre_actual, nuevo_nombre)
- Ejemplo:
# Cambio el nombre de resultados.txt a resultado.txt os.rename( "resultados.txt", "resultado.txt" )
Borrado de archivos
También se puede usar el módulo os para borrar archivos en el sistema operativo.os.remove(nombre_archivo)
Directorios (carpetas)
Python por medio del módulo os puede crear directorios, borrarlos y moverse entre ellos.- mkdir(): Crea un directorio con el nombre que se le ponga entre los paréntesis.
os.mkdir("nuevodir")
- chdir(): Cambia de directorio, el argumento es el nombre del directorio destino.
Ejemplo:import os # cambiando de directorio a "/home/nuevodir" os.chdir("/home/nuevodir")
- getcwd(): Informa cual es el directorio actual
os.getcwd()
- rmdir(): Borra el directorio cuyo nombre es puesto como argumento.
os.rmdir('nombre_dir')