使用 python 代码到 运行 ptraj 文件
Using python code to run ptraj file
我正在 运行在坐标文件上创建一个 watershell ptraj 文件,以查找盐离子到特定原子的距离。我已经制作了 watershell 命令,我正在尝试编写一个 python 代码,可以 运行 watershell 获取一系列值。命令如下:
for xi in range(0, 25, 0.2):
x = xi
y = xi + 0.2
file = 'file1'+str(xi)+'.dat'
command = 'watershell :141-182@C1 output.dat lower xi upper y :183-392@Na+'
print(x,y)
我收到 TypeError: 'float' object cannot be interpreted as integer.
表达式range(0, 25, 0.2)
不合法。步长必须是整数,因此不允许为 0.2。我猜你必须使用 for 循环。
范围函数不会将浮点数作为步长值;相反,您必须使用 int。您可以通过使用乘数来解决这个问题,然后在需要使用变量时进行除法,尝试这样的事情:
for xi in range(0, 250, 2):
x = round(xi / 10.0,1)
y = round(xi / 10.0,1) + 0.2
file = 'file1'+str(xi)+'.dat'
command = 'watershell :141-182@C1 output.dat lower xi upper y :183-392@Na+'
print(x,y)
我正在 运行在坐标文件上创建一个 watershell ptraj 文件,以查找盐离子到特定原子的距离。我已经制作了 watershell 命令,我正在尝试编写一个 python 代码,可以 运行 watershell 获取一系列值。命令如下:
for xi in range(0, 25, 0.2):
x = xi
y = xi + 0.2
file = 'file1'+str(xi)+'.dat'
command = 'watershell :141-182@C1 output.dat lower xi upper y :183-392@Na+'
print(x,y)
我收到 TypeError: 'float' object cannot be interpreted as integer.
表达式range(0, 25, 0.2)
不合法。步长必须是整数,因此不允许为 0.2。我猜你必须使用 for 循环。
范围函数不会将浮点数作为步长值;相反,您必须使用 int。您可以通过使用乘数来解决这个问题,然后在需要使用变量时进行除法,尝试这样的事情:
for xi in range(0, 250, 2):
x = round(xi / 10.0,1)
y = round(xi / 10.0,1) + 0.2
file = 'file1'+str(xi)+'.dat'
command = 'watershell :141-182@C1 output.dat lower xi upper y :183-392@Na+'
print(x,y)