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

309
Vistas
FileNotFoundError while writing to a Pickle file

I'm taking all the filenames in a certain directory in a list, and would like to write this list in a pickle file. Here's the code I am using:

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

This gives me the following 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'

I am supposed to create this file. Why is this file expected already?

(I'm using Python 3.6.)

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

0

In your case most probably /data/train/ directory does not exist

I tried this code and got same error:

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

output:

---------------------------------------------------------------------------
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'

You can handle this problem by making sure the directory exists before writing to file: Programatic approach to do the same is this

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)

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

over 4 years ago · Santiago Trujillo Denunciar

0

I also had the same problem but none of the answers helped me. The directories were there and I used wb, but again and again the same problem.

I hope this helps some who have the same issue: I found out that the problem was that I had a lot of folders, also the name of the file was too long (due to the fact that I made up the filename as a string in which I was trying to indicate the characteristics of that file) and the folder that I was trying to dump into would raise "The file name(s) would be too long for the destination folder" when I tried to move that file manually.

After shortening the file name, the problem was resolved.

over 4 years ago · Santiago Trujillo Denunciar

0

I had a similar problem while writing using a relative pathname (and a symlink). The directory defiantly existed but it was still raising the FileNotFoundError.

The problem disappeared when I switched to using the absolute path

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