1

非常に長い行が含まれるログ ファイルがあります。ファイルを読み取るために read() と readline() を組み合わせて使用​​しています。CPython2.7 が正しく動作しているのに Jython 2.7 を使用すると、奇妙な動作が見られます。以下は、私の問題を再現するサンプルコードです。

file = open("test.log", "w")
file.write("."*100 + "\n" + "."*4100 + "\n" + "."*100)
file.close()

file = open ("test.log")
data = file.read(4096)
data = file.readline()
print "Current fd position:    "+str(file.tell())
seek_back=4100
print "seeking back:           "+str(seek_back)
data = file.seek(-seek_back, 1)
print "fd position after seek: "+str(file.tell())

最後の行の fd 位置は、CPython では 102、Jython では 202 です。シーク/読み取りを間違った方法で使用していませんか? それとも別の問題がありますか?

4

0 に答える 0