xyz是文本型文件,可以用文本编辑器打开。以下是一个典型的.xyz文件内容
3
Generated by Multiwfn
O -0.00000000 -0.00000000 0.11930801
H 0.00000000 0.75895306 -0.47723204
H -0.00000000 -0.75895306 -0.47723204
第一行是原子数;第二行是标题,内容随意;后面是各个原子的元素名以及X、Y、Z坐标
xyz文件为自由格式,即整数位和小数位随意,手写简单,记录精度高
def read_xyz(filename):
"""读取xyz格式文件
参数:文件的完整路径.xyz的文件
返回值:通道名称及其位置`在这里插入代码片`
"""
ch_names = []
locs = []
with open(filename, 'r') as f:
l = f.readline() # header line
while l:
l = f.readline().strip().split("\t")
if (l != ['']):
ch_names.append(l[0])
locs.append([float(l[1]), float(l[2]), float(l[3])])
else:
l = None
return ch_names, np.array(locs)
open函数讲解
readline函数:一行一行的读取文件,每次读取一行
readlines函数:一次性读取全部文件,而后使用for循环读取每一行
for line in f.readlines():
line_temp = line.split(',')
student_list.append(line_temp)
该函数将从原始字符串的开头和结尾删除给定的字符。 默认情况下,函数strip()将删除字符串开头和结尾的空格,并返回前后不带空格的相同字符串。