Как записывать результаты, используя Python For-loop - PullRequest
0 голосов
/ 24 марта 2020

Я новичок и пытаюсь самоучка Python. Я использую Pymatgen для изучения вычислительной материаловедения, и у меня есть вопрос, с которым я столкнулся и нигде не мог найти ответ. У меня есть список - вывод из скрипта, как на картинке ниже введите описание изображения здесь

Я хотел бы использовать для l oop, чтобы записать в другой файл для визуализации, но всю информацию Я нашел только не работает. Я писал руководство по выводу, как показано ниже, и надеюсь, что смогу использовать l oop для упрощения сценария и улучшения его внешнего вида.

p1 = add_h2o[0]
p1.to(filename = 'Al2O3_0001_9_H2O_P_1.POSCAR.vasp')
p2 = add_h2o[1]
p2.to(filename = 'Al2O3_0001_9_H2O_P_2.POSCAR.vasp')
p3 = add_h2o[2]
p3.to(filename = 'Al2O3_0001_9_H2O_P_3.POSCAR.vasp')
p4 = add_h2o[3]
p4.to(filename = 'Al2O3_0001_9_H2O_P_4.POSCAR.vasp')
p5 = add_h2o[4]
p5.to(filename = 'Al2O3_0001_9_H2O_P_5.POSCAR.vasp')
p6 = add_h2o[5]
p6.to(filename = 'Al2O3_0001_9_H2O_P_6.POSCAR.vasp')
p7 = add_h2o[6]
p7.to(filename = 'Al2O3_0001_9_H2O_P_7.POSCAR.vasp')
p8 = add_h2o[7]
p8.to(filename = 'Al2O3_0001_9_H2O_P_8.POSCAR.vasp')
p9 = add_h2o[8]
p9.to(filename = 'Al2O3_0001_9_H2O_P_9.POSCAR.vasp')
p10 = add_h2o[9]
p10.to(filename = 'Al2O3_0001_9_H2O_P_10.POSCAR.vasp')
p11 = add_h2o[10]
p11.to(filename = 'Al2O3_0001_9_H2O_P_11.POSCAR.vasp')

Спасибо за вашу помощь и ваше время!

1 Ответ

1 голос
/ 24 марта 2020

Из предоставленного вами кода видно, что вы сохраняете add_h2o [0] - add_h2o [10] в файлах.

Вы сохраняете add_h2o [ 0 ] в файл Al2O3_0001_9_H2O_P_ 1 .POSCAR.v asp и add_h2o [ 1 ] в файл Al2O3_0001_9_H2O_P_ 2 .POSCAR.v asp, ...

Заметили ли вы какие-либо шаблоны?

Номер файла всегда на 1 больше, чем Индекс элемента в массиве, который вы пытаетесь сохранить. Таким образом, мы можем запустить al oop от 0 до 10, и для каждого числа i в l oop номер файла будет i + 1. Следовательно, код выглядит следующим образом.

for i in range(11):
  add_h2o[i].to(filename='Al2O3_0001_9_H2O_P_{}.POSCAR.vasp'.format(i + 1))

Решает ли это вашу проблему?

...