5

我正在尝试做这样的事情:

Lines = file.readlines()
# do something
Lines = file.readlines()  

但第二次Lines是空的。这正常吗?

4

3 回答 3

10

是的,因为.readlines()将文件指针推进到文件末尾。

为什么不将行的副本存储在变量中?

file_lines = file.readlines()
Lines = list(file_lines)
# do something that modifies Lines
Lines = list(file_lines)

这比敲击磁盘两次要高效得多。(请注意,该list()调用是创建列表副本所必需的,这样对 的修改Lines不会影响file_lines。)

于 2012-04-18T00:17:15.077 回答
10

您需要使用重置文件指针

file.seek(0)

使用前

file.readlines()

再次。

于 2012-04-18T00:17:22.947 回答
0

为了不必一次又一次地使用 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!']
于 2018-05-01T15:59:01.597 回答