Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

313
Views
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 answers
Answer question

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 Report

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!