-6
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"

任何人都可以帮助解决这个问题。谢谢

4

2 回答 2

4

这看起来像在电子邮件中使用的quoted-printable encoding 。您的 Python 源代码不应被引用打印编码,因此您需要手动解码,方法是再次获取源代码而不使用编码,或者使用解码器

从Wikipedia 上的示例可以看出,=3D解码为=. 您还可以通过chr(int('3D', 16))在 Python 中进行评估来验证这一点,Python 解释3D为十六进制值(以 16 为基数),并找到该数字表示的 ASCII 字符。

于 2013-07-17T07:33:23.617 回答
-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")`
于 2013-07-17T07:34:57.520 回答