[英]Using "readlines()" twice in a row
我正在尝试做这样的事情:
Lines = file.readlines()
# do something
Lines = file.readlines()
但第二次Lines
是空的。 这是正常的吗?
是的,因为.readlines()
将文件指针推进到文件末尾。
为什么不将行的副本存储在变量中?
file_lines = file.readlines()
Lines = list(file_lines)
# do something that modifies Lines
Lines = list(file_lines)
这比两次击中磁盘要有效得多。 (请注意, list()
调用是创建列表副本所必需的,以便对Lines
修改不会影响file_lines
。)
您需要使用重置文件指针
file.seek(0)
使用前
file.readlines()
再次。
为了不必一次又一次地使用seek方法每次重置,请使用readlines方法,但您必须将其存储在变量中,如下例所示:
%%writefile test.txt
this is a test file!
#open it
op_file = open('test.txt')
#read the file
re_file = op_file.readlines()
re_file
#output
['this is a test file!']
# the output still the same
re_file
['this is a test file!']
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.