Jump to content

python, codecs, and seek() (help please)


Dak

Recommended Posts

for the file 'new file' that contains:

line1
line2
line3
line4
line5

 

I get this:

 

Python 2.5.1 (r251:54863, Oct  5 2007, 13:36:32) 
[GCC 4.1.3 20070929 (prerelease) (Ubuntu 4.1.2-16ubuntu2)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import codecs
>>> test = codecs.open('new file','r','utf')
>>> test.readline()
u'line1\n'
>>> test.readline()
u'line2\n'
>>> test.seek(0)
>>> test.tell()
0L
>>> test.readline()
u'line3\n'
>>> 

 

am i misunderstanding codecs, or is this a bug? it seems to not be reading from where i tell codecs to seek to, even tho tell() indicates that it's seek()d there...

Link to comment
Share on other sites

short answre: because i've done it another way and there'd be lots of stuff to change if i wanted to do it that way now.

 

long answre, the program it's for is essentially a dictionary-lookup program. atm the dictionary looks kinda like this:

 

start of a: 124
start of b: 3456
start of c: 209834
axx    |
axx    |  decreasing frequency of use
axx    V
bxx
bxx
bxx
cxx
cxx
cxx

 

to look up a word (eg, 'banana'), the program reads the index, seek()s to the beginning of the 'b' words, then reads down till it finds 'banana' (and, the more commonly used a word is, the nearer to the top of it's section it is). also, if you're looking for 'banana' and start to find words that don't start with 'b', the program gives up early. tbh, i'm not sure wether it'd go quicker as a list because it's in memory, or slower because it's unoptomised, and i'm not sure how to optomise a list lookup?

 

i suppose i could load it into memory as a dict{} which is persumably optomised for me, but i'm not sure how big the dictionary will be when finished... i was kinda intending to keep it on the hdd as a favour to the RAM :D

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.