3

python-3.x で使用するために python 2 パッケージをリファクタリングしようとしています。パッケージはStringIO.StringIOpython 2 で使用し、オブジェクトの相対シーク メソッドを使用して、次のようなステートメントを使用しますflob.seek(-1, 1)。残念ながら、 Python 3seekの対応するオブジェクトのメソッドはio.StringIO相対シークをサポートしていないため、コードは発生します

OSError: Can't do nonzero cur-relative seeks

そのステートメントを実行しようとしたとき。

これらの呼び出しを含むモジュールをリファクタリングする最良の方法は何ですか?これがファイルオブジェクトと (から派生したオブジェクト) 文字列に表示される関数を引き続き使用できるようにしたい場合はどうすればよいですか?

4

1 に答える 1

11

Python 2 の文字列は Python 3 ではバイトに名前が変更されるため、コードはio.BytesIO相対シークをサポートする Python 3 で使用する必要があります。

于 2013-11-14T15:48:44.570 に答える