具有两个脚本p1.py和p2.py。
p1.py具有这样的内容
if (day=='01'): /*where day=time.strftime("%d")*/
wb=p2.py(day)
for i in range(1,day_list+1): /* genrates sheet equal to number of days in a month)
wb.copy_worksheet(wb['temp'])
ws=wb['temp Copy']
ws.title=str(i)
现在p2.py具有使用openpyxl加载Excel工作簿的功能:
wb=load_workbook(filename='.....\....\abc.xlsx')
return wb
现在在p1.py中:
if namesheet in wb.sheetnames: /* `namesheet:
chk=day[:1]
if(chk=='0'):
namesheet=day[1:]
else
namesheet=day */
/*do something */
这里,在if条件下出现错误:
name 'wb' is not defined
Traceback (most recent call last):
File "E:\AshimTest\myscript\Auto_Report.py", line 133, in <module>
if namesheet in wb.sheetnames:
NameError: name 'wb' is not defined
有人可以帮忙吗?我认为wb仅在本地if语句中出现。
我是python的新手,这怎么解决??
答案 0 :(得分:1)
或者,您也可以尝试从“ p1.py”中的“ p2.py”导入load_workbook函数,例如:
from py2 import load_workbook
之后,已经在p1.py中运行
wb=load_workbook(filename='.....\....\abc.xlsx')
if namesheet in wb.sheetnames:
...
...
答案 1 :(得分:0)
哦!!!真是个愚蠢的错误。加载模板的if语句仅在当月的第一天有效。对于其余的几天,这里的逻辑是错误的,由于未输入if语句,因此未加载模板,因此wb没有值,也没有声明,因此未定义。