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

残念ながら、OPはファイルの代わりにstdinを使用しているため、tell()は機能しません。しかし、必要なものを提供するために、その周りにラッパーを作成することは難しくありません。

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 に答える