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'
并且在文件末尾,您将有 ''
.
我想制作一个设置文件,以便我的 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'
并且在文件末尾,您将有 ''
.