[Tutor] Little pickle playing up on me (original) (raw)

Steve lonetwin at gmail.com
Fri Jul 9 12:09:50 CEST 2004


Hi Adam,

looking at the error, I noticed:

File "C:\Python23\lib\pickle.py", line 872, in load dispatchkey KeyError: '#'

This suggests that pickle.py is trying to interpret a string that starts with '#'. The second thing I noticed is that, you mentioned that when you provide the filename on prompting it seems to work but when you pass it as a command line argument it seems to fail. So, I looked at your command line argument handling code and saw the problem:

465 >---if sys.argv: 466 >--->---filepassed = str(sys.argv[0])

sys.argv[0] is actually the name of your script when you execute it. The command line arguments passed to the script start from sys.argv[1]. This is because sometimes it is useful to know how the script was called (ie: using it's full path name as opposed to invoking from the current directory).

In any case, if you need a proper full blown command line argument handling module you may look at the getopt module ...tho' it is a bit of an over kill for what you might want to do.

HTH Steve

On Fri, 9 Jul 2004 09:36:10 -0000 (GMT), adam <adam at monkeez.org> wrote:

I've got two functions (see below) which load pickled objects in to memory - one (loadcollection) which worked by querying the user for a string to provide a file name and unpickling it. The second function (loadexistingfunction) takes a command line argument, which has been tested for and turned into a string.

I'm getting the error:

[...snip...]



More information about the Tutor mailing list