を書くこの動作の種類についていくつかの質問があります。のPythonインタプリタ3プリント長が
>>> import sys
>>> sys.stdout.write("aaaa")
aaaa4
>>>
は、私はそこに何が起こっているか理解しています。私が理解していないことは、私の場合に起こっていることです。開いているファイルに関係なく、.write
メソッドを使うたびに、データの長さはstdout
に書き込まれます。
D:\>type CON > test.py
with open("garbage.file", "wb") as f:
f.write(b"xyz")
^Z
D:\>python test.py
D:\>type garbage.file
xyz
D:\>
これは、Windowsのコマンドプロンプト上で使用される任意の新鮮なのPython 3.5インタプリタで発生します(次のいずれか
>>> with open("garbage.file", "wb") as f:
... for x in range(4):
... f.write(b"xyz")
...
3
3
3
3
>>> with open("garbage.file", "rb") as f:
... assert f.read() == b"xyzxyzxyzxyz"
...
>>>
しかし、この動作はないは、私がスクリプトとしてpython
実行してみましょうするときに発生し「通常」cmd
または「アナコンダプロンプト」)。
>>> import sys
>>> sys.version
'3.5.2 |Anaconda 4.1.1 (64-bit)| (default, Jul 5 2016, 11:41:13) [MSC v.1900 64 bit (AMD64)]'
>>>
私はこれまでにこのような動作を見たことがなく、どちらかと思われるようには見えませんでした。何が原因だろうか?どうすれば解決できますか?
私はこれがどのように重複しているのか分かりません。私はPythonプロンプトに式を書いているのではなく、文を書いています。さらに、これは、*実行されるたびに式文*の値を出力する方法を説明しません。確かに、これは異常な動作です。 –
申し訳ありませんが、おそらく私はこれを重複と呼ぶのが早かったでしょう。しかし、私はリンクされたスレッドはあなたの問題が何であるかを説明していると思う インタープリタでコードを実行すると、実行している関数の戻り値が常に表示されますが、実行可能なPythonを介して実行すると戻り値は表示されません。 これは異常な動作ではないと思います。 – Kieran
オリジナルの答えを編集して少しの説明を追加しましたが、これはもう役に立ちますか? @Rhymoid – Kieran