Python2.7バージョンを使用しています。以下は私のサンプルコードです。PythonでStringIOのread()を使用してデータを取得できません
上記のプログラムでは、read()はgetvalue()が私に "hello"を返しても何も返しません。問題を解決するのに誰も助けてくれますか?次のコードは "n"バイトの読み込みを伴うため、read()が必要です。
Python2.7バージョンを使用しています。以下は私のサンプルコードです。PythonでStringIOのread()を使用してデータを取得できません
上記のプログラムでは、read()はgetvalue()が私に "hello"を返しても何も返しません。問題を解決するのに誰も助けてくれますか?次のコードは "n"バイトの読み込みを伴うため、read()が必要です。
バッファの位置を最初にリセットする必要があります。 buff.seek(0)
を実行してこれを行うことができます。
バッファに読み書きするたびに、位置が1つ進められます。あなたが空のバッファで始まるとします。
バッファの値は""
、バッファの位置は0
です。 あなたはbuff.write("hello")
です。明らかに、バッファ値はhello
になりました。ただし、バッファ位置は5
になりました。 read()
に電話をすると、読むべき位置5は何もありません!したがって、空の文字列を返します。
In [38]: out_2 = StringIO.StringIO('not use write') # be initialized to an existing string by passing the string to the constructor
In [39]: out_2.getvalue()
Out[39]: 'not use write'
In [40]: out_2.read()
Out[40]: 'not use write'
または
In [5]: out = StringIO.StringIO()
In [6]: out.write('use write')
In [8]: out.seek(0)
In [9]: out.read()
Out[9]: 'use write'
out.seek(0)は、PickIOをStringIOにダンプしてs3にアップロードしようとしたときに欠けていたものです。いったん私が最初にプッシュバックすると、私のs3オブジェクトは適切に配置されます。 – Matthew
'(読みという名前の関数がありません)'で[StringIOを](http://docs.python.org/library/stringio.html#module-StringIO) – hjpotter92
@ ChasingDeath:そうです。 'dir(StringIO.StringIO)'を試してください。 –
yeah StringIOは、文字列のオブジェクトのようなファイルを作成します。もちろん、read @) – jamylak