Python Pickling Dictionary EOFError

Tengo varios scripts que se ejecutan en un servidor que seleccionan y deshacen varios diccionarios. Todos usan el mismo código básico para el decapado como se muestra a continuación:

<code>SellerDict=open('/home/hostadl/SellerDictkm','rb')
SellerDictionarykm=pickle.load(SellerDict)
SellerDict.close()

SellerDict=open('/home/hostadl/SellerDictkm','wb')
pickle.dump(SellerDictionarykm,SellerDict)
SellerDict.close()
</code>

Todos los scripts se ejecutan bien, excepto uno de ellos. El que tiene problemas va a varios sitios web y raspa datos y los almacena en un diccionario. Este código se ejecuta durante todo el día y decapita los diccionarios y se detiene a la medianoche. Un cronjob vuelve a empezar a la mañana siguiente. Este script puede ejecutarse durante semanas sin problemas, pero aproximadamente una vez al mes el script muere debido a un error EOFError cuando intenta abrir un diccionario. El tamaño de los diccionarios suele ser de unos 80 MB. Incluso traté de agregar SellerDict.flush () antes de SellerDict.close () cuando decapé los datos para asegurarme de que la noche se estaba limpiando.

¿Alguna idea de que puede estar causando esto? Python es bastante sólido, así que no creo que se deba al tamaño del archivo. Donde el código funciona bien durante mucho tiempo antes de morir, me hace creer que quizás se esté guardando algo en el diccionario que está causando este problema, pero no tengo idea.

Además, si conoce una forma mejor de guardar diccionarios que no sean pickle, estoy abierto a las opciones. Como dije antes, los diccionarios se abren y cierran constantemente. Solo para aclarar, solo un programa utilizará el mismo diccionario, por lo que el problema no está siendo causado por varios programas que intentan acceder al mismo diccionario.

ACTUALIZAR:

Aquí está el rastreo que tengo de un archivo de registro.

<code>Traceback (most recent call last):
  File "/home/hostadl/CompileRecentPosts.py", line 782, in <module>
    main()
  File "/home/hostadl/CompileRecentPosts.py", line 585, in main
    SellerDictionarykm=pickle.load(SellerDict)
EOFError
</code>

Respuestas a la pregunta(2)

Su respuesta a la pregunta