parser=3D语法

2024-10-04 05:24:56 发布

您现在位置:Python中文网/ 问答频道 /正文

import sys

from cclib.parser import ccopen

from cclib.bridge import makeopenbabel

import openbabel as ob


parser =3D ccopen(sys.argv[1])
data =3D parser.parse()

distort =3D data.atomcoords[0] - data.vibdisps[0]

obmol =3D makeopenbabel(distort, data.atomnos)

obconv =3D ob.OBConversion()

ok =3D obconv.SetOutFormat("XYZ")

obconv.WriteFile(obmol, "distorted.xyz")`

这个简单的python脚本产生如下语法错误

"test.py", line 7
>    parser = 3D ccopen(sys.argv[1])
>              ^
>SyntaxError: invalid syntax"

有人能帮忙解决这个问题吗。谢谢


Tags: fromimportparserdatasysbridgeopenbabelargv
2条回答

尽管这会修复代码。如果你因为缺少库而出错,我不会感到惊讶。你知道吗

import sys
from cclib.parser import ccopen
from cclib.bridge import makeopenbabel
import openbabel as ob


parser = ccopen(sys.argv[1])
data = parser.parse()
distort = data.atomcoords[0] - data.vibdisps[0]
obmol = makeopenbabel(distort, data.atomnos)
obconv = ob.OBConversion()
ok = obconv.SetOutFormat("XYZ")
obconv.WriteFile(obmol, "distorted.xyz")`

这看起来像quoted-printable encoding,在电子邮件中使用。您的Python源代码不应该被引用为可打印编码的,因此您需要手动解码,或者在没有编码的情况下重新获取源代码,或者使用a decoder。你知道吗

example on Wikipedia可以看出,=3D解码为=。您还可以通过在Python中计算chr(int('3D', 16))来验证这一点,它将3D解释为十六进制值(以16为基数),并找到由该数字表示的ASCII字符。你知道吗

相关问题 更多 >