parser = 3D语法错误

时间:2013-07-17 07:25:18

标签: python syntax-error

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"

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

2 个答案:

答案 0 :(得分:4)

这看起来像quoted-printable encoding,用于电子邮件。您的Python源代码不应引用可打印编码,因此您需要手动解码,无需编码再次获取源,或使用a decoder

正如您从example on Wikipedia所见,=3D解码为=。您还可以通过评估Python中的chr(int('3D', 16))来验证这一点,它将3D解释为十六进制值(基数为16),并查找由该数字表示的ASCII字符。

答案 1 :(得分:-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")`