<分区> 分区>
关于这种行为有几个问题:
>>> import sys
>>> sys.stdout.write("aaaa")
aaaa4
>>>
我明白那里发生了什么。我不明白的是我的情况发生了什么:无论我打开哪个文件,每当我使用它的 .write 方法时,数据的长度都会写入控制台/到 标准输出。
>>> 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 将它作为脚本运行时,这种行为不会发生:
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 命令提示符(“正常”cmd 或“Anaconda 提示符”)上使用的任何新的 Python 3.5 解释器都会发生这种情况。
>>> 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)]'
>>>
我以前从未见过这种行为,而且看起来也不应该发生。可能是什么原因?我该如何解决?
