我正在尝试索引一个巨大的文件,每行包含 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 循环中的迭代对文件中的位置有什么影响?