gpt4 book ai didi

python - 我该如何处理这个回溯名称错误?这是我的第一个脚本

转载 作者:太空宇宙 更新时间:2023-11-04 04:41:20 32 4
gpt4 key购买 nike

错误如下

Traceback (most recent call last):
File "./unzipemall3.py", line 14, in <module>
sformat = parentFormat('start')
File "./unzipemall3.py", line 9, in parentFormat
parent = input(where + " Folder name (ex. Mol1-A) : ")
File "<string>", line 1, in <module>
NameError: name 'mol8' is not defined

!/usr/bin/env python

从操作系统导入chdir从子进程导入 Popen,PIPE

defparentFormat(其中): ## 返回一个以“-”分隔的列表 ## 前任。 Mol1-A 返回 [Mol1, A] # 大多数父文件夹的输入 Parent = raw_input(where + "文件夹名称(例如 Mol1-A):") 返回parent.split('-')

如果“主要”==名称:

sformat = parentFormat('Start')
eformat = parentFormat('End')

cp_dir_prop = {'mol': cformat[0][:3], 'number': '5', 'letter': 'A'}
cp_files = ['vi.job', 'numjob', 'ortho.inp', 'job']
cp_dir = cp_dir_prop['mol'] + cp_dir_prop['number'] + "-" + cp_dir_prop['letter']
cp_dir = '/'.join([cp_dir, cp_dir]) + "-1"

try:
for i in range(0, cutInt(eformat[0])):
cformat[0] = sformat[0][:3] + str(cutInt(sformat[0]))

for j in range(0, ord(eformat[1])-64):
cformat[1] = chr(ord(sformat[1]) + j)

# ex. mkdir Mol8-A/Mol8-A-1
directory = '-'.join(cformat) + '/' + '-'.join(cformat + ['1'])
Popen(['mkdir', directory])

# ex. cp [files from Mol5-A-1] Mol8-A-1/
for cp_file in cp_files:
Popen(['cp', '/'.join([cp_dir, cp_file]), directory + '/'])

# ex. tar -xf Mol8-A
Popen(['tar', '-xf', '-'.join(cformat) + ".tgz"])

# rm charmm-gui
Popen(['rm', 'charmm-gui'])

# ex. cd Mol8-A
chdir('-'.join(cformat))

# sed -i -e '0,/dimensions/s/dimensions/!dimensions.' -e '5s/.*/DIMENS CHSIZE 1000000/' -e '68s/.*/DYNA CPT leap start time 0.002 nstep 25000 -/' step5.1_production.inp
sed = ['sed', '-i']
sed.extend(['-e', '5s/.*/DIMENS CHSIZE 1000000/'])
sed.extend(['-e', '68s/.*/DYNA CPT leap start time 0.002 nstep 25000 -/'])
sed.extend(['-e', '0,/dimensions/s/dimensions/!dimensions'])
sed.extend(['step5.1_production.inp'])
Popen(sed)

# sed -i -e '3s/nodes=4/nodes=1/' -e '37s:.*:mpirun ~/charmm.c36a4.20140107.newcali4.fixhcali.grange.b < ortho.inp >charmm.out:' job5
sed = ['sed', '-i']
sed.extend(['-e', '3s/nodes=4/nodes=1/'])
sed.extend(['-e', '37s:.*:mpirun ~/charmm.c36a4.20140107.newcali4.fixhcali.grange.b < ortho.inp >charmm.out:'])
sed.extend(['job5'])
Popen(sed)

# msub -q backfill job5
Popen(['msub', '-q', 'backfill', 'job5'])

# cd ..
chdir('..')

except Exception as e:
print (e)

最佳答案

我猜您使用的是 Python 2.7 或更低版本。

parent = input(where + " Folder name (ex. Mol1-A) : ")

在此行中,如果用户输入 mol8the interpreter will look for the variable mol8并尝试将其分配给parent。但这不起作用,因为变量 mol8 不存在。如果您希望 parent 包含字符串值 "mol8",请使用 raw_input .

parent = raw_input(where + " Folder name (ex. Mol1-A) : ")

或者,升级到 Python 3,其中 raw_input 已重命名为 input

关于python - 我该如何处理这个回溯名称错误?这是我的第一个脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24872289/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com