值从一个脚本中的函数返回到另一个脚本,值不是全局可用的python



有两个脚本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 */

在这里,如果条件我得到错误:

name 'wb' is not defined
Traceback (most recent call last):
File "E:AshimTestmyscriptAuto_Report.py", line 133, in <module>
if namesheet in wb.sheetnames:
NameError: name 'wb' is not defined

有人能帮忙吗。我认为wb只是第一个if语句的一部分。

我是python新手,这个问题怎么解决??

或者,您可以尝试从'p1.py'中的'p2.py'导入load_workbook函数,例如:

from py2 import load_workbook

之后,已经在p1.py中运行

wb=load_workbook(filename='.........abc.xlsx')
if namesheet in wb.sheetnames:
...
...

oHH!!!多么愚蠢的错误啊。要加载模板的if语句仅在本月的第一天起作用。这里的逻辑是错误的,因为在休息日,模板没有加载,因为它没有输入if语句,因此wb没有值,也没有声明,所以没有定义。

相关内容

  • 没有找到相关文章

最新更新