Задать вопрос
@knownamed

Почему не работает split()?

У меня есть задача сделать так, чтобы я мог извлекать столбцы из файла формата:
HETATM 1 H HOH A 1 27.265 36.739 58.126
HETATM 2 H HOH A 1 27.109 35.124 57.944
HETATM 3 O HOH A 1 27.486 35.958 57.542
...
HETATM 9999 O HOH A3333 30.490 83.899 10.929
END


Но, стандартный .split() почему-то не работает и не хочет делить файл по пробелам, работает только с первым столбцом и выдавая ошибку на последующих: IndexError: list index out of range
Код:

water = open('watercube.pdb','r+')
water2 = water.readlines()
for col in water2:
    el = [col.split()[1] for col in water2]
  • Вопрос задан
  • 190 просмотров
Подписаться 1 Простой 2 комментария
Решение пользователя Михаил Кростелев К ответам на вопрос (3)
@twistfire92
Python backend developer
Конкретно в вашем случае он скорее всего ругался, когда обрабатывал последнюю строку END. там split возвращает список из одного элемента, а вы обращаетесь ко второму элементу.

Да и for col in water2: тут не нужен.

water2=['HETATM 1 H HOH A 1 27.265 36.739 58.126', 
'HETATM 2 H HOH A 1 27.109 35.124 57.944', 
'HETATM 3 O HOH A 1 27.486 35.958 57.542']
el = [col.split() for col in water2]
Ответ написан
Комментировать