python - 如何使用 Python For-loop 编写文件
问题描述
我是 SO 和自学 Python 的新手。我正在使用 Pymatgen 学习计算材料科学,我有一个问题一直在努力解决,但在任何地方都找不到答案。我有一个像图片一样的脚本输出列表。
我想使用 for 循环写入不同的文件以进行可视化。我一直在像下面的脚本一样手动编写输出,并希望使用 for 循环来简化脚本并使其看起来更好。
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')
解决方案
从您提供的代码中,可以看出您正在将 add_h2o[0] 到 add_h2o[10] 保存在文件中。
您将 add_h2o[ 0 ] 保存在文件 Al2O3_0001_9_H2O_P_ 1 .POSCAR.vasp 中,并将 add_h2o[ 1 ] 保存在文件 Al2O3_0001_9_H2O_P_ 2 .POSCAR.vasp 中,...
你注意到任何模式了吗?
文件的编号始终比您尝试保存的数组中元素的索引大 1。因此,我们可以运行一个从 0 到 10 的循环,对于循环中的每个数字 i,文件的编号将为 i + 1。因此,代码如下。
for i in range(11):
add_h2o[i].to(filename='Al2O3_0001_9_H2O_P_{}.POSCAR.vasp'.format(i + 1))
这能解决您的问题吗?
推荐阅读
- amazon-web-services - 在 AWS 上使用 file_get_contents 的连接成本
- python - How do i increment the score by 100 each time when checked if what the user inputted is the same as whats in the array[i]?
- java - 在java中的main之外初始化MPI
- c - 此代码如何在字符串中查找重复字符?
- python-3.x - How to force max() to break a tie when comparing integer values?
- awk - If statement to skip division by zero
- php - 使用 php 从数据库中显示图像。不显示图像
- node.js - What is wrong with this promisify?
- c - How to fix "Conditional jump or move depends on uninitialised value(s)" error in C
- python - Display columns in matrix format using dataframe python