問題タブ [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.

0 投票する
1 に答える
615 参照

python - Python3.0:トークン化とBytesIO

python3.0で文字列を作成しようとすると、トークンが開始する前にtokenize先頭を取得するのはなぜですか?'utf-8'

python3 docsから、次のtokenizeように使用する必要があります。

ただし、ターミナルでこれを試みると、次のことが起こります。

utf-8他のトークンに先行するトークンとは何ですか?これは起こるはずですか?もしそうなら、私は常に最初のトークンをスキップする必要がありますか?

[編集]

トークンタイプ57はtokenize.ENCODINGであり、必要に応じてトークンストリームから簡単に除外できることがわかりました。

0 投票する
2 に答える
4291 参照

python - Python v2.5 での BytesIO

質問:

Python 2.5 の StringIO のように機能するバイト ストリームを取得するにはどうすればよいですか?

応用:

PDF をテキストに変換していますが、ファイルをハードディスクに保存したくありません。

他の考え:

StringIO を使用できると考えましたが、モード パラメータはありません (「String」はテキスト モードを意味すると思います)。

どうやら io.BytesIO クラスは v2.6 で新しく追加されたようで、これもうまくいきません。

tempfile モジュールを使用した解決策がありますが、ハードディスクへの読み取り/書き込みは避けたいと思います。

0 投票する
4 に答える
19384 参照

zipfile - 奇妙な「BadZipfile:BadCRC-32」の問題

このコードは、アップロードされたzipファイルをHTTPマルチパートPOST経由で受信し、内部のデータの読み取り専用処理を行うDjangoアプリのコードを簡略化したものです。

ものすごく単純。zipファイルとzipファイル内の1つまたは2つのCSVファイルを開きます。

奇妙なことに、これを大きなzipファイル(〜13 MB)で実行し、ZipFilefromStringIO.StringIOまたはa io.BytesIO(おそらくプレーンファイル名以外のもの)をインスタンス化すると、DjangoアプリでZipFilefromを作成しようとしたときに同様の問題が発生しました。および)を呼び出して作成されたTemporaryUploadedFileファイルオブジェクトでさえ、1つではなく2つのcsvファイルを開くと、処理の終わりに向かって失敗します。Linuxシステムで表示される出力は次のとおりです。os.tmpfile()shutil.copyfileobj()

ちなみに、コードは同じ条件下で失敗しますが、私のOSXシステムでは異なる方法で失敗します。例外の代わりに、BadZipfile破損したデータを読み取るように見え、非常に混乱します。

これはすべて、私がこのコードであなたがしてはいけないことをしていることを私に示唆しています-例えば:zipfile.open同じzipファイルオブジェクト内の別のファイルをすでに開いている間にファイルを呼び出しますか?を使用する場合、これは問題ではないようですが、モジュール内の実装の詳細のために、ファイルのようなオブジェクトZipFile(filename)を渡す場合はおそらく問題がありますか?ZipFilezipfile

おそらく私はzipfileドキュメントで何かを逃しましたか?それともまだ文書化されていませんか?または(最も可能性が低い)、zipfileモジュールのバグですか?

0 投票する
4 に答える
2038 参照

python - Python - BytesIO と urllib2.add_data

さまざまなバイトを追加する BytesIO があります。request.add_data メソッドを介して urllib2.Request でこれを送信したい。どうすればいいですか?やってみると

私は何を間違っていますか?Python は初めてで、BytesIO からバッファを作成する方法がわかりません。また、試してみると:

「閉じたファイルに対する I/O 操作」が表示されます。urlopen の後で bytesio.close を呼び出すまで待機しようとすると、bytesio が閉じられるのを待っているため、要求がハングします。

私は何をする必要がありますか?

答え

文字列へのキャストはそれを幸せにしました。すべてが StringIO で機能するかどうかは試していませんし、Python 2.x と 3.x の違いも試していません。

0 投票する
1 に答える
1887 参照

python - Getting back bytes object instead of uploaded file

Python 3.2, Apache, no framework

I have a form to upload a file:

There's also a few select boxes, but I didn't want to confuse the issue. The end goal is to encrypt the given file, and store it somewhere, which will then be decrypted later and given back. I managed to get the encrypt/decrypt working, but instead of a pdf file, I ended up with a byte string (opened in a browser it said:

So I stripped out the encryption and decryption and saving, and I'm now just trying to make it give me back the exact file I just uploaded:

That gives me:

Adobe Error

I've tried it with two different pdfs, now, and both give the same message.

A text file gives back a byte string of the original text:

Changing the code to include disposition:

and using the text file gives me the usual download or save, but the text file is just the same byte string, not the actual file.

I've spent the last day trying to find the exact right combination of words that will make Google give me the answer, but of the (very few, surprisingly) results that are at all applicable, they all act as if this is an elementary operation and should just work. I've found stuff talking about reading from binary files and to open them correctly, except the uploaded file is a temp file, not a saved file, it's in memory and open is not a valid method for it. I've also seen stuff on setting up file servers in python, but they're talking about setting up actual servers, not just spitting out a a single file. Do I need to set up a full blown server to get back a file?

I'm sure I'm making some incredibly stupid rookie mistake, here, but I just can't figure out what.

0 投票する
1 に答える
7132 参照

python - pythonバイトシオストリームを送信するftp

ファイルの読み取り/書き込みプロセスを回避するために、ある ftp サイトから別の ftp サイトに python ftplib を使用してファイルを送信したい。

BytesIO ストリームを作成します。

そして、retrbinary を使用して ftp サイト 1 からイメージ ファイルを取得することに成功しました。

このメモリ オブジェクトを通常のファイルに保存できます。

しかし、storbinary を使用して ftp 経由でこのストリームを送信することはできません。私はこれがうまくいくと思った:

しかし、そうではありません。'buf = fp.read(blocksize) AttributeError: 'str' object has no attribute 'read' で終わる長いエラー メッセージが表示されます

私も多くのばかげた組み合わせを試しましたが、成功しませんでした。余談ですが、myfoto.write で実際に何をしているのかについてもかなり困惑しています。それは myfoto.write() であるべきではありませんか?

また、このバッファが何をするか、または必要とするかについてもまったくわかりません。私がやりたいことは複雑すぎて達成できませんか? システムで中間の書き込み/読み取りを使用してファイルをピンポンする必要がありますか? すべてのタイ

編集: abanert のおかげで、私は物事をまっすぐにしました。記録として、storbinary 引数が間違っていたため、ストリームを送信する前に「巻き戻す」ために myfile.seek(0) が必要でした。これは、中間の物理ファイルへの書き込みなしで、2 つの ftp アドレス間でファイルを移動する実用的なスニペットです。

0 投票する
2 に答える
7668 参照

python - Python で io.BytesIO() ストリームを subprocess.popen() にパイプできますか?

subprocess.popen()を使用してio.BytesIO()バイトストリームを別のプログラムにパイプしようとしていますが、これがどのように可能か、または可能かどうかはわかりません。ドキュメントと例はすべてテキストと改行に関するものです。

私がこのようなものを作るとき:

私は得る

popen()はテキスト専用だと思います。私が間違っている?
これを行う別の方法はありますか?

0 投票する
2 に答える
58 参照

java - シリアル化後に型の長さを取得する方法

Javaでは、 などのマップがあり、 、、などmap<K,V>の任意のタイプになる可能性があるという問題が発生しました。KVintLongStringTime

Kマップがシリアル化された後、または の長さを取得できVますか? このアイデアを実装するための一般的な方法を書くことはできますか? 何かのようなもの:

どうすればそれができますか?