Velocity Reviews

Velocity Reviews (http://www.velocityreviews.com/forums/index.php)
-   Python (http://www.velocityreviews.com/forums/f43-python.html)
-   -   speed up linecache.getline() (http://www.velocityreviews.com/forums/t701416-speed-up-linecache-getline.html)

bbarbero@inescporto.pt 10-13-2009 01:21 PM

speed up linecache.getline()
 
Hi Everyone!!


I am using linecache.getline, to access to a line in a long file. It s
really fast, appx 4seconds, but I was just wandering if any of you,
know either another way, or there is something that I can do to speed
it up... thank you very much for your help!!

Regards,
Bea











Quoting Chris Rebert <clp2@rebertia.com>:

> On Wed, Oct 7, 2009 at 10:21 AM, <bbarbero@inescporto.pt> wrote:
>> Hi again!
>>
>> After testing the whole day, I have got my goals from the last email, but as
>> always, another issues came up! and now that Ive been able to save a list of
>> list (or multi-arrays) as below :
>>
>> ['100.mp3\n' '10008.mp3\n' '10005.mp3\n' '10001.mp3\n' '10006.mp3\n']
>> ['10001.mp3\n' '10005.mp3\n' '100.mp3\n' '10008.mp3\n' '10006.mp3\n']
>> ['10005.mp3\n' '10001.mp3\n' '100.mp3\n' '10008.mp3\n' '10006.mp3\n']
>> ['10006.mp3\n' '10005.mp3\n' '10001.mp3\n' '100.mp3\n' '10008.mp3\n']
>> ['10008.mp3\n' '100.mp3\n' '10001.mp3\n' '10005.mp3\n' '10006.mp3\n']
>>
>> I am not able to manipulate it again! I read it with:
>> Myfile.read() and all what I get is a str type data, what make my aim very
>> difficult to reach! Â*What I want, is just to read one line(one specific
>> line, so Â*I wouldnt have to read the whole file) and to get the numbers of
>> the songs from that line. Maybe I should save the information in another
>> way... But I just get those lines as lists, and write them in a file. Is
>> there a better way? I am very receptive to suggestions! Thanks again for
>> your help!

>
> Have you considered using the `json` module
> (http://docs.python.org/library/json.html) to serialize and
> deserialize the lists to/from a file in JSON format?
> The `pickle` module is another option:
> http://docs.python.org/library/pickle.html
>
> Cheers,
> Chris
> --
> http://blog.rebertia.com
>




----------------------------------------------------------------
This message was sent using IMP, the Internet Messaging Program.

Peter Otten 10-13-2009 02:32 PM

Re: speed up linecache.getline()
 
bbarbero@inescporto.pt wrote:

> I am using linecache.getline, to access to a line in a long file. It s
> really fast, appx 4seconds, but I was just wandering if any of you,
> know either another way, or there is something that I can do to speed
> it up... thank you very much for your help!!


If it is a single file that never changes just read it into a list:

with open(filename) as f:
cached_lines = list(f)

If that alone takes about 4 seconds the runtime of your script is spent
reading the file from disk. An SSD might help then ;)

In some situations you could delay reading line n until that line is
actually needed. This may speed up your script for cases where all requested
lines are near the beginning of the cached file.

Peter



All times are GMT. The time now is 08:44 AM.

Powered by vBulletin®. Copyright ©2000 - 2013, vBulletin Solutions, Inc.
SEO by vBSEO ©2010, Crawlability, Inc.


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57