問題タブ [bytesio]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - BytesIO オブジェクトから Tk ウィジェットに画像をロードする
BytesIO オブジェクトからキャンバスに画像をレンダリングしたいので、このコードを使用しています。
キャンバスとラベルで次のエラー メッセージが表示されました。
このコードを修正する方法、または BytesIO オブジェクトからキャンバスに画像をレンダリングする別の方法を知っていれば、それはすばらしいことです。ありがとう
python - バイト文字列から画像を書き込む
cgi を使用してリモート サーバーからバイト文字列を取得しています。このバイト文字列は、「宛先」に保存された画像であると想定されています
このコードはサーバー部分にあり、python 2.6 を実行します。
次に、ローカル スクリプト (python 3) を使用して、サーバーからの応答を取得します。
そして、私は次のようなものを手に入れます:
文字通り。これは文字列です。先頭に b' があり、末尾に ' があります。
この画像をローカルに保存したいので、この文字列を BytesIO で使用できるものに変換したいと思います。
私が試してみると:
私は得る:
b' の部分をカットするなど、いろいろ試しましたが、うまくいきませんでした。何か考えはありますか?
python - ジェネレーターをバッファーにラップしますか?
ファイルの一部を生成する python ジェネレーター ( wsgi ) があり、それを従来のメソッドとメソッドapp_iter
を持つことを期待するインターフェイスに渡す必要があります (別のものとして渡したい)。read
readlines
wsgi.input
Request
ジェネレーターのコンテンツ全体をメモリに具体化しない方法でそれを行うことは可能ですか? アイデアは、ジェネレーターをread
andを持つものreadline
( BytesIO
or などStringIO
) でラップし、怠惰な方法で実行することです。
python - StringIO、cStringIO、および ByteIO についての混乱
これらのバッファモジュールの違いをグーグルで検索し、SOでも検索しました。しかし、私はまだよく理解していません。私が読んだ記事のいくつかは古くなっていると思います。
Python 2.7.11 では、特定の形式のバイナリ ファイルを を使用してダウンロードしましたr = requests.get(url)
。次に、コンテンツを解析するために設計された関数にStringIO.StringIO(r.content)
, cStringIO.StringIO(r.content)
andを渡しました。io.BytesIO(r.content)
これら 3 つの方法はすべて利用可能です。つまり、ファイルがバイナリであっても、StringIO
. なんで?
もう1つのことは、それらの効率に関するものです。
上図のように、cStringIO > StringIO > BytesIO
.
io.BytesIO
常に新しいコピーを作成するため、より多くの時間がかかると誰かが言及しているのを見つけました。しかし、これが後の Python バージョンで修正されたという投稿もいくつかあります。
IO
では、最新の Python 2.x と 3.x の両方で、これらの s を完全に比較できる人はいますか?
私が見つけた参照の一部:
- https://trac.edgewall.org/ticket/12046
io.StringIO には Unicode 文字列が必要です。io.BytesIO にはバイト文字列が必要です。StringIO.StringIO は、Unicode またはバイト文字列のいずれかを許可します。cStringIO.StringIO には、バイト文字列としてエンコードされた文字列が必要です。
しかしcStringIO.StringIO('abc')
、エラーは発生しません。
https://review.openstack.org/#/c/286926/1
StringIO クラスは、特にサブユニット v2 がバイナリで文字列ではないことを考えると、これに使用するクラスとしては不適切です。
http://comments.gmane.org/gmane.comp.python.devel/148717
cStringIO.StringIO(b'data') はデータをコピーしませんでしたが、io.BytesIO(b'data') はコピーを作成します (データが後で変更されていない場合でも)。
この投稿には 2014 年の修正パッチがあります。
- ここにリストされていないSOの投稿がたくさんあります。
Eric の例の Python 2.7 の結果は次のとおりです。
2.7 に関しては、cStringIO.StringIO
とStringIO.StringIO
は よりもはるかに効率的ですio
。
python - csv の io.BytesIO への書き込みが python3 で失敗する
文字列をcsvファイルオブジェクトに書き込むために、python 2/3互換コードを書き込もうとしています。このコード:
Python3 で次のエラーが発生します。
しかし、assert は型に問題がないのに、なぜcsv
エラーが発生するのでしょうか。
BytesIO
Python 2 と 3 の両方にしか使えないのですか? ここで問題はどこにありますか?
python - Python 3.5 BytesIO エラー
私はすべてpython 2.7でプロジェクトを作成していますが、ドキュメントがpython 3.5であるため、最終部分でいくつかのエラーが発生し始めました。だから私はすべてをpython 3.5に変更していますが、bytesIOが原因でエラーが発生しています。理由を理解するのを手伝ってもらえますか?どうすればよいですか? エラーは、string_dinamica.write('P3\n') のdef reprから発生しています。必要な場合に備えて、すべてのコードを残しました。助けてくれてありがとう。注: これが python 2.7 で機能することを確認するためですが、3.5 では機能しません。