Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

314
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda