Pickled text file causing ValueError (dos/unix issue)

Tim Peters tim.peters at gmail.com
Fri Jan 14 09:12:49 EST 2005


[Aki Niimura]
> I started to use pickle to store the latest user settings for the tool
> I wrote. It writes out a pickled text file when it terminates and it
> restores the settings when it starts.
...
> I guess DOS text format is creating this problem.

Yes.

> My question is "Is there any elegant way to deal with this?".

Yes:  regardless of platform, always open files used for pickles in
binary mode.  That is, pass "rb" to open() when reading a pickle file,
and "wb" to open() when writing a pickle file.  Then your pickle files
will work unchanged on all platforms.  The same is true of files
containing binary data of any kind (and despite that pickle protocol 0
was called "text mode" for years, it's still binary data).



More information about the Python-list mailing list