sys.stdout.write()
とsys.stderr.write()
という出力を作成するスクリプトがあります。最近、私はスクリプトの他の側面についていくつかの質問を投稿しました。答えを投稿する人はprint('some text', file=sys.stdout)
を好むようです。出力に関する私の第一の関心事は、ファイルによって、あるいは別のプログラムへの入力としてシェルによってパイプされるということだけです。誰かがprint()
とsys.stdout.write
の違いを説明してください(または私に既存の説明を教えてください)。どちらを使うべきですか、それらの規則に合理的ですか?print()とsys.stdout.write():どちらが、なぜですか?
答えて
「誰かくださいはを説明する(または既存の説明を私に直接)プリントとの違い()とsys.stdout.write、それぞれがこれらの規則を使用して合理的すべき例はできますか? "
まあ、私はあなたがPython3のprint()関数に関して聞いている沈黙は、実際には1つの違いがあるためです:使用法。私にしてみましょう引用PEP-3105:[1]
print()
のシグネチャは次のとおりです。
デフ(* argsを、9月=」」、エンド= '\ nの'、ファイル=なし)
印刷
ような呼び出し:
プリント(A、B、C、ファイル= sys.stderrを持ち)
は、今日のと等価になります:
印刷>> sys.stderrを持ち、A、B、C
オプションの9月と最後の引数は、それぞれの間と引数の後に印刷されたものを指定しながら、 。
ソフトスペース機能(最初の項目の前にスペースを挿入するかどうかを印刷するために現在使用されているファイルの半秘密属性)が削除されます。
印刷「A」、印刷
「」と改行の間にスペースを印刷されません。そのため、今日のための直接的な翻訳ができません。
2005年の問題についてのグイド・ヴァン・ロッサムの議論[1]:アイテム間にスペースを入れたくないと決めると、使い勝手がはっきりとした非直線性があります。 sys.stdout.write()
に切り替えるか、文字列内のすべての項目を収集する必要があります。これは単純な変換ではありません、それはこの単純な例では、コンマの前にスペースを取り除くために必要なものを考えてみます。
print "x =", x, ", y =", y, ", z =", z
を、それはビルトインを持つ、組み込み関数だった場合スペースを挿入せずに改行を追加した同様のことを行うコンパニオン関数は論理的なことです(または、その動作を制御するキーワードパラメータを追加しますが、私は第2の関数を好む)。それが現在立っているとしてだけ プリントで、あなたは
print "x = " + str(x) + ", y = " + str(x) + ", z = " + str(z)
または
print "x = %s, y = %s, z = %s" % (x, y, z)
いるのでもないが、非常に魅力的であるようなものに切り替える必要があるだろう。ダウン日曜日の朝メモリ車線のため
良い質問を - (彼らはこの例ではありませんが、他の状況にあり、スペースは大したことではないことを私に教えていません。) ; なぜこの明らかな冗長性ですか?パイソンの
7禅:それはpythonicallyより正確な、より高いレベルのコードを書くことであるのでは[パイソン - sys.stdout.writeとプリントとの間の差]の
- 1. IonicとAppceleratorのどちらが優れていますか?なぜですか?
- 2. どちらが有効なcreate table Sql Statementですか、なぜですか?
- 3. なぜLuaでprint(print())がprint(type(2))のように動作しないのですか?
- 4. readelfとobjdump:なぜどちらも必要です
- 5. 変数とのsys.stdout.write()と.flush()
- 6. なぜopen(True、 'w')はsys.stdout.writeのようなテキストを出力しますか?
- 7. ScaleModifierでスプライトがちらつくのはなぜですか?
- 8. これはどちらが良いコード方法ですか?なぜ?
- 9. WPF Path Animationがちらつくのはなぜですか?
- 10. どのmetamethodがprint()ですか?
- 11. ファイルからの読み取り。どちらが良いアプローチですか、なぜですか?
- 12. なぜprint(())とinput(())でかっこを印刷するのですか?
- 13. 私たちが必要とするオフラインブートストラップファイルとはどちらですか?
- 14. Phonegap:FileTransferとAjaxはどちらですか?
- 15. ロールバックとRaiseerrorはどちらですか?
- 16. SearchManagerとContentSearchManagerはどちらですか?
- 17. 2つのアプローチから、どちらがCMSページ管理に適していますか、なぜですか?
- 18. Sxmlとxexpとの違いは何ですか?なぜ私はどちらを使うべきですか?
- 19. どちらが速いですか?
- 20. どちらが速いですか
- 21. どちらが良いですか?
- 22. どちらが良いですか? toFile
- 23. httptest.NewRequest vs http.NewRequest:どちらがテストで使用するのですか?なぜですか?
- 24. Luaのprint(0x1e1)の出力は何ですか?なぜ?
- 25. share()とReplaySubject:どれがどちらかどちらも動作していない
- 26. 「FMAPのどちらかが」
- 27. pythonでdir()にprint関数を渡すことができないのはなぜですか?
- 28. NodejsとAPIのコマンドラインの使用なぜどちらか他の人?
- 29. なぜpprintモジュールはdictキーをprintと別にソートするのですか?
- 30. 左コーナー解析アルゴリズムとCYK解析アルゴリズムの間の解析にはどちらが最適ですか?なぜ?
可能な重複「可読性をカウント」(HTTPSを: //stackoverflow.com/questions/3263672/python-the-difference-between-sys-stdout-write-and-print) –