JES es un entorno de programación que podemos utilizar para testear, escribir y ejecutar código de manera local en nuestro ordenador. Sin embargo, para esto también necesitas saber cómo leer y escribir archivos usando la aplicación JES, que incluso tiene varias funciones para la posibilidad de realizar edición de fotos y vídeos, entre diferentes medios.
Es posible leer diferentes tipos de archivos, entre los que se incluyen archivos de texto y CSV. Por lo que resulta considerablemente útil en varias ocasiones.
Cómo leer y escribir archivos con JES
Leer un archivo
Para poder leer un archivo en JES, lo primero será abrirlo, después ver el contenido y guardarlo como una variante para procesarlo más adelante.
En caso de leer un archivo de texto, podemos guardar cada línea del archivo de manera individual como un elemento en una matriz. En el caso de los archivos CSV, es posible almacenar el valor de cada celda individual.
Por lo tanto, comenzamos abriendo la aplicación JES en nuestro ordenador. En la ventana de programación vamos a tener que crear una nueva función:
def readFromFile():
Utilizaremos la función pickAFile() para solicitar que seleccione un archivo:
file = pickAFile()
Ahora la validación de archivos para asegurarnos que los usuarios únicamente seleccionen archivos TXT o CSV:
if not file.endswith(«.txt») and not file.endswith(«.csv»): print(«Error: Only .txt and .csv files are supported.») return
Abriremos el archivo que elegimos con la función open(). En cuanto al primer parámetro, es el archivo que estamos leyendo. En lo que respecta al segundo, se encarga de definir el modo que usamos para abrirlo. Por lo tanto, rt significa leer archivo.
openedFile = open(file, «rt»)
Después de abrir el archivo, vamos a tener que leer todo el contenido del interior. Procedemos a guardar este contenido del archivo en una variable:
allContent = openedFile.read()
Ahora, cerramos el archivo:
OpenedFile.close()
La variable “allContent” tiene una sola cadena que se encarga de guardar todo el contenido del archivo. Un carácter de una nueva línea (n) es el que divide cada línea en archivos. Si deseamos acceder a líneas individuales, dividiremos una cadena y guardaremos cada línea como un elemento en una matriz:
if file.endswith(«.txt»): rows = allContent.split(«n») print(rows)
En caso de estar leyendo un archivo CSV, podremos separar las líneas para conseguir el valor de cada celda individual. Para cada fila en el archivo CSV, tendremos que separar los valores usando comas y almacenar los valores en una matriz doble. La estructura de la matriz se debería ver parecida a esto: [[1,2,3], [4,5,6], [7,8,9]].
if file.endswith(«.csv»): rows = allContent.split(«n») csvData = [] for row in rows: if (row != »): cells = row.split(«,») csvData.append([float(cell) for cell in cells]) print(csvData)
Ahora, tendríamos que probar este programa, para ello vamos a crear un archivo de texto que se llame sample.txt y rellenarlo con algo de texto, puede ser cualquier cosa.
Como alternativa, podemos crear un archivo CSV, el nombre será números.csv y los completaremos con algunos datos.
En la aplicación JES, daremos clic en el botón Cargar programa, este se encuentra entre la ventana de programación y la línea de comando.
Aquí vamos a ejecutar la función que veremos a continuación en la línea de comando:
redFromFile()
Utilizando el indicador de archivo, vamos a navegar hasta donde hemos guardado el archivo sample.txt. Elegiremos el archivo para poder abrirlo y ver lo que aparecerá en la pantalla.
Ejecutamos nuevamente la función redFromFile() desde símbolo de sistema. Elegimos el archivo números.csv para ver lo que aparece en consola, con cada celda individual y almacenada en una matriz.
Cómo escribir un archivo en JES
Gracias a la función write() podremos escribir un archivo de texto o CSV. Es posible abrir el archivo agregando o grabándolo. Los datos adicionales se añadirán al contenido que ya existe, mientras que la escritura sobrescribirá cualquier contenido existente en el archivo.
Por lo tanto, comenzamos creando una nueva función y la usaremos para escribir el archivo de texto y CSV. Iniciamos creando la función llamada writeToFile():
def writeToFile():
A continuación, vamos a usar la función pickAFile() para seleccionar un archivo:
file = pickAFile()
Abrimos el archive para agregar todos los datos:
openedFile = open(file, «at»)
Como alternativa, si lo que deseamos es sobreescribir todo el contenido del archivo, vamos a tener que ingresar “w” como argumento en lugar de “at”.
openedFile = open(file, «w»)
Si lo que buscamos es escribir varios archivos. Podemos agregar diferentes líneas, usaremos “n” para dividir el contenido en líneas o la función write():
if file.endswith(«.txt»): openedFile.write(«nTesting») openedFile.write(«nTesting1nTesting2») openedFile.write(«nTesting3»)
Para escribir un archive CSV, tendremos que escribir todos los datos de una fila haciendo uso de la función write() y vamos a separar los valores de cada celda usando una coma:
if file.endswith(«.csv»): openedFile.write(«n12,34,56»)
Una vez que terminamos, procedemos a cerrar el archivo:
openedFile.close() print(«Wrote to file successfully»)
Ahora vamos a dar clic en el botón Cargar programa, este se encuentra entre las opciones de programación y línea de comando. Aquí ejecutaremos el siguiente comando en el símbolo de sistema:
writeToFile()
Usando el indicador de archivos, seleccionaremos el archivo “sample.txt”. Luego de que JES termine de escribir el archivo, procedemos a abrirlo para visualizar las líneas que se añadieron al final del mismo.
Volveremos a ejecutar la función writeToFile() desde la línea de comandos. Abrimos el archivo números.csv para poder ver los valores que se añadieron a la celda, justo en el final.
Como podremos apreciar, es importante aprender a leer y escribir archivos usando JES es algo sumamente útil que, en principio, puede ser algo complicada. Sin embargo, termina siendo muy cómodo para guardar datos dentro de un programa.
¿Tienes alguna pregunta o problema relacionado con el tema del artículo? Queremos ayudarte.
Deja un comentario con tu problema o pregunta. Leemos y respondemos todos los comentarios, aunque a veces podamos tardar un poco debido al volumen que recibimos. Además, si tu consulta inspira la escritura de un artículo, te notificaremos por email cuando lo publiquemos.
*Moderamos los comentarios para evitar spam.
¡Gracias por enriquecer nuestra comunidad con tu participación!