[Tutor] Little pickle playing up on me
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
> dispatch[key](self)
> 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
> (load_existing_function) 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