我如何处理此追溯名称错误?(How do i deal with this traceback name error? This is my first script)

编程入门 行业动态 更新时间:2024-10-27 03:29:33
如何处理此追溯名称错误?(How do i deal with this traceback name error? This is my first script)

错误如下

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

来自os import的chdir来自子进程导入Popen,PIPE

def parentFormat(where):##返回一个列表,其中包含' - '## ex的分隔符。 Mol1-A为大多数父文件夹parent = raw_input返回[Mol1,A]#输入(其中+“文件夹名称(例如Mol1-A):”)return parent.split(' - ')

如果' main '== name

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)

The error is as follows

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

from os import chdir from subprocess import Popen, PIPE

def parentFormat(where): ## returns a list with the separator of '-' ## ex. Mol1-A returns [Mol1, A] # input for most parent folder parent = raw_input(where + " Folder name (ex. Mol1-A) : ") return parent.split('-')

if 'main' == name:

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) : ")

在这一行中,如果用户键入mol8 , 解释器将查找变量mol8并尝试将其分配给parent 。 但这不起作用,因为变量mol8不存在。 如果您希望parent包含字符串值"mol8" ,请使用raw_input 。

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

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

I'm guessing you're using Python 2.7 or lower.

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

On this line, if the user types mol8, the interpreter will look for the variable mol8 and try to assign it to parent. But this won't work because the variable mol8 doesn't exist. If you want parent to contain the string value "mol8", use raw_input.

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

Alternatively, upgrade to Python 3, where raw_input has been renamed to input.

更多推荐

本文发布于:2023-08-04 14:56:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1417880.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:如何处理   错误   名称   deal   error

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!