我有一个要读取的文件,如下所示:
0.0017224129699045 0.0006501069699993 0.9998957781816742
0.1990018751753198 0.0008531972943402 0.0001365339587167
0.3985306090674854 0.0004447825187626 0.9994454487115476
0.5997635306734566 0.0007689624538330 0.0001887505556155
0.8014083650919446 0.0007156269856168 0.9995317401042954
0.1999636426048639 0.1995427045657650 0.0017775030876521
每列显示原子的坐标。我想为在python中定义为对象的原子指定坐标:
# The parser
#!/usr/bin/python3
def get_pos():
with open("CONTCAR", "r") as finp:
for line in finp:
for _ in range(6):
sdata = finp.readline()
tpos.append(sdata.split())
print(tpos)
调用函数是:
#!/usr/bin/python3
import parsepos
class Atom:
count = 0
def __init__(self, name, pos=[], vel=[]):
self.name = name
self.pos = pos
self.vel = vel
Atom.count += 1
# self.parse = parsepos.get_pos()
parsepos.get_pos()
此mcwe
,在list tpos
中显示正确列出的原子,但我不知道如何将这些值分配给atom.pos
。
请帮助。
答案 0 :(得分:1)
默认情况下,Python中的函数返回None
。只需让get_pos()
返回tpos
:
def get_pos():
with open("CONTCAR", "r") as finp:
for line in finp:
for _ in range(6):
sdata = finp.readline()
tpos.append(sdata.split())
# print(tpos)
return tpos
然后像这样:
Atom.pos = parsepos.get_pos()
print(Atom.pos)
希望这有帮助!