Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

316
Vistas
FileNotFoundError al escribir en un archivo Pickle

Estoy tomando todos los nombres de archivo en un directorio determinado en una list y me gustaría escribir esta lista en un archivo pickle . Aquí está el código que estoy usando:

 import _pickle as pickle with open(filepath+'filenames.pkl', 'wb') as f: pickle.dump(filenames, f)

Esto me da el siguiente error:

 --------------------------------------------------------------------------- FileNotFoundError Traceback (most recent call last) <ipython-input-32-c59e6889d2fe> in <module>() 1 import _pickle as pickle ----> 2 with open(dpath+'filenames.pkl', 'wb') as f: 3 pickle.dump(filenames, f) FileNotFoundError: [Errno 2] No such file or directory: '/data/train/filenames.pkl'

Se supone que debo crear este archivo. ¿Por qué ya se espera este archivo?

(Estoy usando Python 3.6.)

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

En su caso, lo más probable es que el directorio /data/train/ no exista

Probé este código y obtuve el mismo error:

 import pickle as pickle filenames='sadasdas' with open('/tmp/not_exist/filenames.pkl', 'wb') as f: pickle.dump(filenames, f)

producción:

 --------------------------------------------------------------------------- FileNotFoundError Traceback (most recent call last) <ipython-input-7-6a22c2148796> in <module>() 1 import pickle as pickle 2 filenames='sadasdas' ----> 3 with open('/tmp/not_exist/filenames.pkl', 'wb') as f: 4 pickle.dump(filenames, f) FileNotFoundError: [Errno 2] No such file or directory: '/tmp/not_exist/filenames.pkl'

Puede manejar este problema asegurándose de que el directorio exista antes de escribir en el archivo: el enfoque programático para hacer lo mismo es este

 import os filename = "/tmp/not_exist/filenames.pkl" os.makedirs(os.path.dirname(filename), exist_ok=True) data = 'sadasdas' with open('/tmp/not_exist/filenames.pkl', 'wb') as f: pickle.dump(data, f)

referencia: https://stackoverflow.com/a/12517490/3027854

over 4 years ago · Santiago Trujillo Denunciar

0

También tuve el mismo problema pero ninguna de las respuestas me ayudó. Los directorios estaban allí y usé wb , pero una y otra vez el mismo problema.

Espero que esto ayude a algunos que tienen el mismo problema: descubrí que el problema era que tenía muchas carpetas, también el nombre del archivo era demasiado largo (debido al hecho de que inventé el nombre del archivo como una cadena en que estaba tratando de indicar las características de ese archivo) y la carpeta en la que estaba tratando de volcar mostraría "Los nombres de archivo serían demasiado largos para la carpeta de destino" cuando intenté mover ese archivo manualmente.

Después de acortar el nombre del archivo, el problema se resolvió.

over 4 years ago · Santiago Trujillo Denunciar

0

Tuve un problema similar al escribir usando un nombre de ruta relativo (y un enlace simbólico). El directorio definitivamente existía, pero aún generaba el FileNotFoundError.

El problema desapareció cuando cambié a usar la ruta absoluta

 abspath = pathlib.Path(filename).absolute() with open(str(abspath), 'wb') as f: pickle.dump(thing_to_pickle, f)
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda