我有一个格式如下的文件:
...
[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:
...
但是得到了相同的结果。
我想知道问题出在哪里。
答案 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]