web-dev-qa-db-ja.com

Pythonの標準入力から行を読み込む

標準入力から行を読み取る次の2つの方法の違いは(もしあれば)raw_input()sys.stdin.readline()ですか?そして、これらの方法のどちらが他の方法よりも好ましい場合は?

26

raw_input() は、オプションのPrompt引数を取ります。また、返される文字列から末尾の改行文字を削除し、 readline モジュールがロードされている場合に履歴機能をサポートします。

readline() はオプションのsize引数を取り、末尾の改行文字を削除せず、履歴を一切サポートしません。

彼らは同じことをしないので、彼らは実際に交換可能ではありません。個人的には、raw_input()を使用してユーザー入力を取得し、readline()を使用してファイルから行を読み取ることを好みます。

36

「しかし、多くのPython初心者および教育者の観点から、sys.stdin.readline()の使用には以下の問題があります。

  1. 「raw_input」という名前と比較すると、「sys.stdin.readline()」という名前は不格好で洗練されていません。

  2. 「sys」および「stdin」という名前は、ほとんどの初心者にとって意味がありません。初心者は、主に関数の機能に関心があり、パッケージ構造内の場所ではありません。意味の欠如により、覚えが難しくなります。「sys.stdin.readline()」または「stdin.sys.readline()」ですか?プログラミングの初心者にとって、一方を他方よりも優先する明確な理由はありません。対照的に、print、input、raw_input、openなどの単純で直接的な名前の関数は覚えやすいです。」ここから: http://www.python.org/dev/peps/pep-3111/

9
Mariy