Pickle Problem

MRAB google at mrabarnett.plus.com
Wed Mar 4 09:49:57 EST 2009


Fab86 wrote:
> On Mar 4, 1:40 am, "Gabriel Genellina" <gagsl-... at yahoo.com.ar> wrote:
>> En Tue, 03 Mar 2009 23:11:30 -0200, Fab86 <fabien.h... at gmail.com> escribió:
>>
>>
>>
>>> On Mar 4, 12:00 am, MRAB <goo... at mrabarnett.plus.com> wrote:
>>>> Fab86 wrote:
>>>>> On Mar 3, 8:59 pm, "Gabriel Genellina" <gagsl-... at yahoo.com.ar> wrote:
>>>>>> How to "spell" exactly the exception name should appear in the  
>>>>>> documentation; might be yahoo.SearchError, or  
>>>> yahoo.search.SearchError, or  
>>>>>> yahoo.errors.SearchError, or similar.
>>>>> I have been trying except SearchError: however I get the error:
>>>>> Traceback (most recent call last):
>>>>>   File "C:\Downloads\MoS\yws-2.12\Python\pYsearch-3.1\timeDelay.py",
>>>>> line 19, in <module>
>>>>>     except SearchError:
>>>>> NameError: name 'SearchError' is not defined
>>>>> I have searched all documents for terms along the lines of searcherror
>>>>> but am finding nothing..
>>>> It's defined in the module you imported to get the search functionality.
>>> I imported:
>>> from yahoo.search.web import WebSearch
>>> However there is nothing re SearchError in that doc or in the .py.
>>> I can only find a reference to SearchError in the __init__ file as a
>>> class called SearchError
>> The __init__.py indicates a package  
>> <http://docs.python.org/tutorial/modules.html#packages>
>> You didn't tell the package name (the name of the directory containing  
>> __init__.py) so this is somewhat generic. If the package name is foo, use:
>>  from foo import SearchError
>> If foo is a subpackage under bar, use:
>>  from bar.foo import SearchError
>>
>> It *might* be:
>>  from yahoo.search.web import WebSearch
>> or perhaps:
>>  from yahoo.search import WebSearch
>>
>> You can enter those lines in the interactive interpreter to discover the  
>> right form. (This really ought to have been documented)
>>
>> --
>> Gabriel Genellina
> 
> Ok, I managed to import the correct error class (was in a non expected
> place)
> 
> Just as I thought I was finished, I encountered a final problem. I am
> running a while loop which is constantly adding search results to a
> file, like this (print >> f, res.total_results_available). I have put
> an exception in that if it times out, it simply tries again until its
> finished. The problem is that the loop re-write all new results
> continuing on from the previous searches. I would like to somehow
> delete all in that file and start again.
> 
> I thought this could simply be achieved by putting f.close() in the
> exception and then it re-writes it however I am getting this error:
> 
> Traceback (most recent call last):
>   File "/home/csunix/scs5fjnh/FYProj/Python/pYsearch-3.1/test9.py",
> line 17, in <module>
>     print >> f, res.total_results_available
> ValueError: I/O operation on closed file
> 
> Is there another way rather than closing the file? Is it possible to
> delete all within the file?
> 
You could do:

     f.seek(0)
     f.truncate()

I hope you don't just discard all the results you've got so far and then
start from the beginning again.



More information about the Python-list mailing list