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

2024-09-30 04:41:31 发布

您现在位置: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 */

这里,在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

有人能帮忙吗?我想世界银行只是对第一国际单项体育联合会的声明有所保留

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


Tags: nameinpyifwsisnottemp
2条回答

哦!!!多么愚蠢的错误。加载模板的if语句只在每月的第一天起作用。这里的逻辑是错误的,因为在剩下的日子里,模板没有加载,因为它没有输入if语句,因此wb没有值,也没有声明,所以没有定义

或者,您可以尝试从“p1.py”中的“p2.py”导入load\u工作簿函数,例如:

from py2 import load_workbook

在那之后,已经在p1.py运行了

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

相关问题 更多 >

    热门问题