dirname(@__FILE__)"/home/runner/work/ciencia-datos-julia/ciencia-datos-julia/parts/firststeps"
Como en todo lenguaje de programación, deberemos gestionar la lectura y escritura de ficheros. El sistema de ficheros lo gestiona el sistema operativo de nuestra máquina con lo que se trata más bien de interactuar con este al menos de cara a conocer por ejemplo, dónde estamos ubicados.
dirname(@__FILE__)"/home/runner/work/ciencia-datos-julia/ciencia-datos-julia/parts/firststeps"
Podemos crear carpetas de forma programática pero en la mayoría de casos se tratará de leer y escribir ficheros en rutas concretas. Para ello nos será útil la función joinpath que nos ayuda a conformar rutas tal y como el sistema de ficheros requiere.
root = dirname(@__FILE__)
joinpath(root, "ejemplo.txt")"/home/runner/work/ciencia-datos-julia/ciencia-datos-julia/parts/firststeps/ejemplo.txt"
Y como vimos anteriormente, usar la función readlines() para leer su contenido.
fichero = joinpath(root, "ejemplo.txt")
readline(fichero)"Hola desde un fichero!"
Imaginemos por tanto que queremos descargarnos un CSV (Comma Separated Value) con información sobre los pasajeros del Titanic
using Downloads
fichero_url = "https://raw.githubusercontent.com/datasciencedojo/datasets/refs/heads/master/titanic.csv"
fichero = Downloads.download(fichero_url)
readlines(fichero)[:20]"19,0,3,\"Vander Planke, Mrs. Julius (Emelia Maria Vandemoortele)\",female,31,1,0,345763,18,,S"
Si queremos conservar el fichero para más adelante podemos recurrir a la función write() y guardarlo donde nosotros queramos.
write("../../data/titanic.csv", read(fichero))60302
Y podemos revisar el contenido iterando sobre walkdir() que recorre los elementos de un directorio.
itr = walkdir("../../data/")
(root, dirs, files) = first(itr)("../../data/", String[], [".gitkeep", "titanic.csv", "titanic.json", "titanic.parquet"])
Disponemos de los comandos más usuales a la hora de crear un directorio (mkdir()) o adentrarnos en él (cd()). Tenéis más detalle sobre los comandos disponibles aquí.