将上述代码更改为,读取同一目录下每一个POSCAR的结构文件,并输出每一个POSCAR晶胞的C原子的平均位置和平均分布范围
时间: 2024-03-19 07:46:16 浏览: 118
读取文件的代码
好的,您可以尝试以下代码:
```python
import os
from pymatgen.io.vasp.inputs import Poscar
from pymatgen.core.structure import Structure
from pymatgen.analysis.local_env import VoronoiNN
from pymatgen.core.sites import Site
import numpy as np
# 获取当前目录下所有POSCAR文件
file_list = [f for f in os.listdir('.') if f.endswith('.vasp') or f.endswith('.POSCAR')]
for file_name in file_list:
# 读取POSCAR文件
poscar = Poscar.from_file(file_name)
structure = poscar.structure
# 获取晶格常数和C原子坐标
lattice = structure.lattice
c_atoms = [site for site in structure if site.specie.symbol == 'C']
c_coords = np.array([site.coords for site in c_atoms])
# 计算C原子的平均位置和平均分布范围
avg_position = np.mean(c_coords, axis=0)
avg_range = np.amax(c_coords, axis=0) - np.amin(c_coords, axis=0)
# 输出结果
print("POSCAR file: ", file_name)
print("Average position of C atoms: ", avg_position)
print("Average range of C atoms: ", avg_range)
print()
```
这段代码会读取当前目录下所有的POSCAR文件,计算每个POSCAR晶胞中C原子的平均位置和平均分布范围,并输出结果。
阅读全文