質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
Flask

FlaskはPython用のマイクロフレームワークであり、Werkzeug・Jinja 2・good intentionsをベースにしています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

3回答

8747閲覧

python でいうところのストリームの意味

sequelanonymous

総合スコア123

Flask

FlaskはPython用のマイクロフレームワークであり、Werkzeug・Jinja 2・good intentionsをベースにしています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

1クリップ

投稿2019/02/28 08:59

ストリーム単体での意味や〇〇ストリームやストリーム処理と使われた場合のストリームの意味がわかりません。
例えば、以下のような文章

テキスト I/O
テキスト I/O は、 str オブジェクトを受け取り、生成します。すなわち、背後にあるストレージがバイト列 (例えばファイルなど) を格納するときは常に、透過的にデータのエンコード・デコードを行ない、オプションでプラットフォーム依存の改行文字変換を行います。

テキストストリームを作る一番簡単な方法は、オプションでエンコーディングを指定して、 open() を利用することです:

テキストストリームといっているときのこのストリームの明確な定義をご教示いただけませんでしょうか?
サーチしても当たり前のようにストリームという言葉がつかわれていて、その書き手のストリームの理解が怪しいと思うときもあります。もしご存知のかたいましたら教えていただけませんでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ストリームというのは、データが順番に流れ込んでいく/流れ出していくさまを表してます
また、そういうデバイスを指した言葉になったりしますね。

順番に来るデータ(ストリームデータ)を来た順番に処理して(文字コード変換とか)これまた順番に出力していく、ってのをストリーム処理、と呼びます。
まあ、そんなむずかしいことではないです

投稿2019/02/28 09:16

編集2019/02/28 09:21
y_waiwai

総合スコア87747

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sequelanonymous

2019/02/28 09:24

はい、私もそういう理解でいました。が、テキストストリームをテキストが流れてくる様とかって意味で上記の文書を理解できないので質問しました
guest

0

ベストアンサー

英単語そのままの意味です。
「連続して連なった物」でしょうか。ちょっと頭が頭痛的な説明ですが。

「テキストストリーム」=「文字の連なり」

「バイトストリーム」(引用中の文だと「バイト列」)と対になる概念です。

プログラミング言語だと、「(シーケンシャルに読むためにオープンされた)ファイル」とも言えます。そのファイルを指し示す物は、言語や環境により、「ファイルポインタ」とか、「ファイル構造体」とか、「ファイルハンドル」とか「ファイルオブジェクト」とか呼ばれます。

ファイルを、バイナリモードでオープンすれば、バイトストリームだし、テキストモードで必要ならエンコーディングを指定してオープンすれば、テキストストリームです。

ここでは、ファイルというのは必ずしもディスク上のファイルとは限らず、TCPソケットやシリアル回線のようにオープンしてシーケンシャルにに読み書きする物全部です。

投稿2019/02/28 10:18

編集2019/02/28 23:33
otn

総合スコア84487

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sequelanonymous

2019/03/07 11:28

> プログラミング言語だと、「(シーケンシャルに読むためにオープンされた)ファイル」とも言えます。そのファイルを指し示す物は、言語や環境により、「ファイルポインタ」とか、「ファイル構造体」とか、「ファイルハンドル」とか「ファイルオブジェクト」とか呼ばれます。 ファイルを、バイナリモードでオープンすれば、バイトストリームだし、テキストモードで必要ならエンコーディングを指定してオープンすれば、テキストストリームです。 こういう理解をしたいと思っていました。ありがとうございます。完全に腑に落ちました
guest

0

pythonで用語について調べたいときは、とりあえずこのページ内で検索をかけてみるとヒットすることがあります。今回も見つかりました。

ファイルオブジェクトは file-like objects や streams とも呼ばれます。

用語集 — Python 3.6.8 ドキュメント #term-file-object

要するにファイルオブジェクトの別名ことだそうです。

ioのページにもそう書いてありましたね。

io モジュールは様々な種類の I/O を扱う Python の主要な機能を提供しています。 I/O には主に3つの種類があります; テキスト I/O, バイナリ I/O, raw I/O です。これらは汎用的なカテゴリで、各カテゴリには様々なストレージが利用されます。これらのいずれかのカテゴリに属する具象オブジェクトは全て file object と呼ばれます。他によく使われる用語として ストリーム と file-like オブジェクト があります。

16.2. io --- ストリームを扱うコアツール — Python 3.6.8 ドキュメント

少し引いた視点で考えると、大昔のUNIXから(もっと昔かもしれませんが)入出力をファイルみたいなものに抽象化するというのは一般的なやり方になっていて、そういう風に抽象化された入出力のことをストリームと言っているのでしょう。

また、16.2.3. クラス階層を読むとどんなメソッドが定義されていればストリーム足り得るのかがわかります。抽象基底クラスが用意されているので、これらを継承して実装を書けば自作のストリームを作れます(また、pythonの場合はダックタイピングなので、継承しなくても同名メソッドをすべて実装したクラスを作れば可)。

投稿2019/02/28 18:53

hayataka2049

総合スコア30933

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sequelanonymous

2019/03/07 11:30

> 要するにファイルオブジェクトの別名ことだそうです。 ありがとうございます。理解が進みました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問