readline() 没有输出正确的行

readline() not outputting correct line

我想制作一个设置文件,以便我的 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

-

谁能解释一下我做错了什么或者我该如何改进?

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() 一次获取所有文件,而不是逐行获取。有时那不是你真正想做的。

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

f.readline(1)
#          ^ read 1 byte

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

既然你真的打算逐行阅读,你不应该指定这个大小参数:

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

一个空行将 return '\n' 并且在文件末尾,您将有 ''.