各行が5列で構成される巨大なサイズのファイルにインデックスを付けようとしています。最初の列がキーになり、ソートされます (17 個しかないとしましょう)。各キー値の開始位置を示す辞書を生成したいと考えています。だから私がすることは次のとおりです:
fmaps = open('file.txt','r')
pos = fmaps.tell()
ln = fmaps.readline()
chrDict = {ln.split()[0]:pos}
for ln in fmaps:
if not chrDict.has_key(ln.split()[0]):
pos = fmaps.tell()
chrDict[ln.split()[0]] = pos
ただし、ファイルを開こうとすると、
f = open('file.txt','r')
f.seek(val)
print f.readline()
最初の 0 バイト以外は完全に位置がずれていることがわかります。
forループの反復がファイル内の位置に対して何をするか知っている人はいますか?