me quedo con os
Plantillas de proyectos para ciencia de datos
¿Qué son y por qué utilizar plantillas de proyectos?
Instalar Cookiecutter
Crear plantillas de proyecto personalizadas
Implementar hooks
Distribuir plantilla de proyecto
Manejo de archivos en Python
Manejo de rutas: problemática
Manejo de rutas del sistema: OS
Manejo de rutas del sistema: Pathlib
Manejo de rutas del sistema: PyFilesystem2
Crear referencias relativas de archivos
Caso práctico
Descarga de plantilla y configuración de ambiente virtual
Utilizar proyecto como un módulo de Python
Flujo de trabajo de los notebooks
Conclusiones
Aplica estas herramientas
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Crear la ruta “./data/raw/” independiente del sistema operativo. Ahora usaremos PyFilesystem2.
Dentro del notebook de jupyter:
import fs
fs.open_fs(".") # Abre una conexión con el path actual (OSFS)
CURRENT_DIR = fs.open_fs(".")
CURRENT_DIR.exists(".") # Revisa si el directorio existe
DATA_DIR.listdir(".") # Muestra el contenido dentro de la ruta.
PyFilesystem2 genera un objeto OSFS (Operating System Filesystem).
El inconveniente con este módulo es que el objeto OSFS solo detecta los objetos que existen en la ruta actual, por lo que si intentas acceder a un archivo ubicado en el directorio padre “…” te saltará un IndexError.
Si necesitas que el objeto OSFS también detecte el directorio padre, además de las carpetas “data” y “raw”, vuelve a generar el objeto de la siguiente forma:
fs.open_fs("../data/raw/") # Ruta objetivo
Contribución creada por: Néstor Arellano.
Aportes 12
Preguntas 4
me quedo con os
Veo muchos comentarios indicando que os y pathlib son mejores que PyFilesystem. Creo que tienen sus razones dado que PyFilesystem es orientado a objetos y de pronto muchos no nos gusta cómo funciona.
El poder de está librería se ve cuando tengamos las siguientes condiciones:
🚙💨_ _ _ 🚗💨 _ _ _ 🛻💨
Bentley, Ferrari o Aston Martin…
La pregunta no radica en cuál es mejor, sino en cuál se adapta mejor a tus necesidades.
“lo estás haciendo excelente”. No tanto. Quise crear una carpeta y no pude 😦
Entendido y esta librería me gusto mucho.
#
import fs
#
CURRENT_DIR =fs.open_fs(".")
print(CURRENT_DIR.exists("."))
CURRENT_DIR.exists("..")
#
DATA_DIR = fs.open_fs("../")
print(DATA_DIR.exists(""))
DATA_DIR.listdir(".")
for path in DATA_DIR.walk.files():
print(path)
with DATA_DIR.open(path) as data_file:
print(data_file.read())
for path in DATA_DIR.walk.dirs():
print(path)
#
DATA_DIR.makedir("external_fs",recreate=True)
#
sub_data_dir = DATA_DIR.makedirs("external_fs/fs/nested", recreate=True)
sub_data_dir.makedir("test")
PyFilesystem2 genera un objeto OSFS (Operating System Filesystem). El inconveniente con este módulo es que el objeto OSFS solo detecta los objetos que existen en la ruta actual, por lo que si intentas acceder a un archivo ubicado en el directorio padre “…” te saltará un IndexError.
import fs
fs.open_fs(".")
#Verifica que el directorio exista
CURRENT_DIR = fs.open_fs(".")
CURRENT_DIR.exists("/ruta_prueba")
#Esta libreria trabaja con conexiones
#Solo existe lo que esta en la ruta que se define cono conexion
#Marca error al verificar que existe el directorio padre de la ruta
CURRENT_DIR.exists("..")
#Ir a la carpeta /data/raw
#la ventaja de esta libreria es que trabajas con slash (/) en cualquier Sistema operativo
fs.open_fs("../data/raw")
#Listar lo que hay en una carpeta
DATA_DIR = fs.open_fs("../data/raw")
DATA_DIR.listdir(".")
#Iterar archivos de una carpeta
for path in DATA_DIR.walk.files():
print(path)
#mostrar contenido de los archivos iterados
for path in DATA_DIR.walk.files():
print(path)
with DATA_DIR.open(path) as data_file:
print(data_file.readlines())
#Crear una carpeta
#solo se puede crear dentro de la conexion donde te encuentras
DATA_DIR.makedir("external_fs", recreate=True)
No entiendo para que sirve esto 😦
No me convence, creo que es más complicado que soluciones anteriores
good , no sabia q se podia tener ese problema 😃
No entendia el por qué del parámetro recreate del makedir. Fui a la documentación y lo explica, les dejo la captura:
Muy interesantes los tres, igual creo que hay que trabajar a mayor profundidad con todos para definir cual es el que mas le gusta a cada uno.
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?
o inicia sesión.