speed up linecache.getline()

B

bbarbero

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 said:
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
 
P

Peter Otten

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
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,995
Messages
2,570,236
Members
46,822
Latest member
israfaceZa

Latest Threads

Top