print(f.read())返回字符串的大小

时间:2015-09-01 13:23:35

标签: python-3.x

我有以下代码:

with open("hello.txt", "r+") as f:
    f.write("Hello Python!\n")
    print(f.read())

但输出很奇怪:

14
Hello Python!

字符串' Hello Python!'有13个字符(可能由于某种原因,它返回13 + 1?)

更糟糕的是:我只是想增加字符串的大小:

... with open("hello.txt", "r+") as f:
...     f.write("Hello Python!!\n")
...     print(f.read())
...     
... 
15
ello Python!

>>> with open("hello.txt", "r+") as f:
...     f.write("Hello Python!!!\n")
...     print(f.read())
... 
16
llo Python!

然后我打开文件hello.txt,内容是

Hello Python!!!
llo Python!

我在这里阅读了一些文档https://docs.python.org/3.4/tutorial/inputoutput.html,但它在print(file.read())中并不太深......我的Python版本是3.4.3,而我的操作系统是Linux。< / p>

1 个答案:

答案 0 :(得分:1)

Python交互式控制台会自动在输出中打印表达式的结果。

例如:

>>> 1 + 1
2

f.write()返回文件中写入的字符数,Python REPL会在print(f.read())行之前打印该数字。

这不会发生在普通脚本中,因为表达式结果不会自动打印。