Как получить смещение байта в файле в Python - PullRequest
1 голос
/ 04 сентября 2010

Я делаю инвертированный индекс, используя hadoop и python. Я хочу знать, как я могу включить смещение байта строки / слова в Python. Мне нужно что-то вроде этого

hello hello.txt@1124

Мне нужны места для создания полного инвертированного индекса. Пожалуйста помоги.

1 Ответ

8 голосов
/ 04 сентября 2010

Как?OP использует stdin вместо файла.Но нетрудно построить вокруг него обертку, чтобы дать то, что вам нужно.

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)
...