1

这里说脚本应该在 pymol 命令行中使用。我想在阅读后使用循环输出许多距离。但我收到错误消息:

File "<string>", line 1
    for i in range(resi_total_n):
                                ^
SyntaxError: unexpected EOF while parsing

我的代码是:

from pymol import cmd
mol_name='name'
resi=10 # the target residue number
resi_total_n=500 # the total residue number

f=open('dist.txt','w')
resi_n=0
for i in range(resi_total_n):
    resi_n += 1
    dst=cmd.distance('tmp',mol_name+'///'+str(resi)+'/ca',mol_name+'///'+str(resi_n)+'/ca') #the alpha carbon
    f.write("%8.3f\n"%dst)
f.close()
4

2 回答 2

2

在这里我找到了答案:

在尝试进行编程时,最好坚持使用 Python。将以下内容另存为 script.py 并run script.py在 Pymol 中使用或仅发出pymol script.py

于 2017-12-18T22:00:44.343 回答
1

您不需要将脚本作为单独的文件运行。您可以将 for 循环全部放在一行上,例如,

当您运行此代码时:

for c in chains:
    print c

你得到这个错误:

File "toplevel", line 1
for c in chains:
               ^

SyntaxError: unexpected EOF while parsing

但如果你写:

for c in chains: print(c)

给出输出

A
B
C
D
于 2019-07-28T05:12:58.473 回答