Python не всегда полностью читает строку - PullRequest
0 голосов
/ 03 марта 2019

У меня есть файл в следующем формате:

...
[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()

Я хочу разделить содержимое на '-'.У меня есть для цикла и функции разделения на каждой строке.Код выглядит так:

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 голосов
/ 03 марта 2019

Это может быть утечка памяти из-за не закрытия файла, это все, что я могу придумать.Попробуйте этот код, чтобы увидеть, имеет ли значение закрытие файла.

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]
...