3

我正在使用 hadoop 和 python 制作倒排索引。我想知道如何在 python 中包含行/单词的字节偏移量。我需要这样的东西

hello hello.txt@1124

我需要制作完整倒排索引的位置。请帮忙。

4

1 回答 1

12

像这样?

file.tell()

返回文件的当前位置,如 stdio 的 ftell()。

http://docs.python.org/library/stdtypes.html#file-objects

不幸的是,tell() 不起作用,因为 OP 使用的是标准输入而不是文件。但是围绕它构建一个包装器来提供你需要的东西并不难。

class file_with_pos(object):
    def __init__(self, fp):
        self.fp = fp
        self.pos = 0
    def read(self, *args):
        data = self.fp.read(*args)
        self.pos += len(data)
        return data
    def tell(self):
        return self.pos

然后你可以改用这个:

fp = file_with_pos(sys.stdin)
于 2010-09-04T14:00:23.180 回答