Python并不总是能完全读取行

时间:2019-03-03 02:44:25

标签: python python-3.x readline

我有一个格式如下的文件:

...
[1, 2, 10, 15, 22]_[18, 23]-0
[0, 2, 10, 21, 23]_[9, 10]-1
[0, 9, 13, 14, 18]_[7, 13]-1
[8, 11, 12, 13, 23]_[8, 11]-1
...

我正在使用open(file_path).readlines()

读取文件

我想用“-”分隔内容。我在每行上都有一个for循环和split函数。代码如下:

file_path = os.path.join(file_directory, file_name)
file_lines = open(file_path, 'r').readlines()
for line in file_lines:
   var1 = line.split('-')[0]
   var2 = line.split('-')[1]

代码在中间中断,错误为list index out of range

当我打印行以调试发生的事情时,它会正确打印行,但有错误的行除外。在本示例中为[8, 11, 12, 13, 23。当我再次运行它时,它有时不会失败,但有时它会在另一行中失败。

我也尝试过:

with open(file_path, 'r') as f:
   for line in f:
      ...

但是得到了相同的结果。

我想知道问题出在哪里。

1 个答案:

答案 0 :(得分:0)

不关闭文件可能是内存泄漏,这就是我能想到的。尝试使用以下代码,查看关闭文件是否有帮助。

file_path = os.path.join(file_directory, file_name)
with open(file_path, 'r') as f:
    readlines = f.readlines():
for line in readlines:
    var1 = line.split('-')[0]
    var2 = line.split('-')[1]