Здравствуйте, Мне нужна ваша помощь по следующей проблеме. Я разбор файл, который выглядит следующим образомПолучить имя для файла из массива python
@<TRIPOS>MOLECULE
NAME123
line3
line4
line5
line6
@<TRIPOS>MOLECULE
NAME434543
line3
line4
line5
@<TRIPOS>MOLECULE
NAME343566
line3
line4
Я currenly этого код, который работает нормально ...
mols = []
with open("test2.mol2", mode="r") as molfile:
for line in molfile:
if line.startswith("@<TRIPOS>MOLECULE"):
mols.append(line)
else:
mols[-1] += line
#
for i in range(len(mols)):
out_filename = "file%d.mol2" % i
with open(out_filename, mode="w") as out_file: out_file.write(mols[i]);
но whem я пытался сохранить файлы с именем в соответствии со вторым поле массива, после @MOLECULE (NAME ....) с кодом вроде этого - он не работает. Пожалуйста, помогите мне исправить код. Благодаря!
for i in mols:
out_filename = str(i.split()[1]) + ".mol2" % i
with open(out_filename, mode="w") as out_file: out_file.write(mols[i]);
Ошибка
Traceback (most recent call last):
File "<stdin>", line 2, in <module>
TypeError: not all arguments converted during string formatting
Но этот вывод выводит только первый массив, а не другие. –
И мне также нужно @ MOLECULE как первая строка каждого файла. –
Это должно сделать это. – jpaugh