readline()没有输出正确的行

时间:2016-07-19 08:16:21

标签: python readline

我想创建一个设置文件,这样我的python脚本可以在重启后记住设置。我使用命令f.readline(),但输出不同,给出了我读过的行数。

例如: 文本文件是

1
2
3

当我使用此脚本打印出信息时。

f = open("test.txt", "r")

print(f.readline(1))
print("-") #i used this to see if the output is blank since it will leave a empty space    
print(f.readline(2))
print("-")
pirnt(f.readline(3))
print("-")

输出是:

-
1
-


-
2

-

有人可以解释我做错了什么或我如何改进它?

2 个答案:

答案 0 :(得分:1)

readline的签名采用您指定的可选 size 参数,但如果您打算逐行读取文件,则不需要该参数:

f.readline(1)
#          ^ read 1 byte

该参数与您假设的行号不同义。

由于您确实打算逐行阅读,因此不应指定此大小参数:

f.readline() # reads one line at a time

空行将返回'\n',在文件末尾,您将有''

答案 1 :(得分:0)

readline的参数不是您想要读取的行数,而是您希望的字节数。

要按行号访问文件,您可以使用readlines()

f = open("test.txt", "r")
lines = f.readlines()
print(lines[0])
print("-") #i used this to see if the output is blank since it will leave a empty space    
print(lines[1])
print("-")
pirnt(lines[2])
print("-")

请注意readlines()一次获取所有文件而不是逐行获取。有时这不是你真正想做的事情。