FileNotFoundError

Aparece el error FileNotFoundError en Python sobre Ubuntu

Al tratar de obtener la fecha de un archivo con el m贸dulo os y el m贸dulo datetime en Python, aparece el error FileNotFoundError: [Errno 2] No such file or directory: ‘archivo’, en Ubuntu Linux. Este error puede suceder dentro de un bucle tipo for cuando iteramos sobre una lista de archivos, generada por el m茅todo os.listdir().

El script que puede generar este error puede ser algo parecido a este:

#!/usr/bin/env python3.6

import os
import datetime

nombre_de_directorio = '/home/erwin/pruebas/'

for archivo in os.listdir(nombre_de_directorio):

    fecha_creacion = datetime.date.fromtimestamp(os.path.getmtime(archivo))
    print(str(archivo)+' '+str(fecha_creacion))

Lo ejecutamos, y sas! el error al iterar sobre el archivo en cuesti贸n.

Y no es que sea un problema de la librer铆a datetime, o del m茅todo os.listdir() o del bucle por s铆 solos, porque al funcionar por separados cumplen su objetivo perfectamente (misterios sin develar). Bueno, por alguna causa que no he profundizado en descubrir, he observado que el problema es del m茅todo os.listdir() dentro del bucle, pues su fracaso es 煤nicamente con archivos nuevos, es decir, con archivos cuya fecha de creaci贸n es la actual del sistema.

Bueno, una soluci贸n que nos puede solventar dicho problema es generar la lista de archivos usando el m茅todo pathlib.Path, en lugar de os.listdir(). As铆 las cosas, el script final queda de la siguiente forma:

#!/usr/bin/env python3.6

import os, datetime, pathlib

directorio = pathlib.Path('/home/erwin/pruebas/')

for archivo in directorio.iterdir():
    fecha_creacion = datetime.date.fromtimestamp(os.path.getmtime(archivo))
    print(str(archivo)+' '+str(fecha_creacion))

Perfecto, ya est谩.


Valora este art铆culo:

Aparece el error FileNotFoundError en Python sobre Ubuntu
5,0 rating based on 12.345 ratings
Overall rating: 5 out of 5 based on 1 reviews.

 

Name
Email
Review Title
Rating
Review Content

 

Genial

★★★★★
Me salvaste la vida! Muchas gracias
- Romeo Acevedo
Comparte esto en
Publicado en Python.