运行python cod时出现名称错误

2024-03-28 08:39:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我在运行下面的代码时遇到一个名称错误。我如何解决这个问题?在

代码:

import xlwt
workbook = xlwt.Workbook()
worksheet = workbook.add_sheet('Status')

passed = xlwt.easyxf('pattern: back_color green')
failed = xlwt.easyxf('pattern: back_color red')


color = (passed if passorfail in ['pass','Passed','passed'] else
    (failed if passorfail in ['fail','Failed','failed'] else xlwt.easyxf()))

worksheet.write_merge(6, 6, 3, 3,passorfail, style = color)

workbook.save('passfail2.xls')
print "Completed"

输出:

^{pr2}$

预期结果:

如果通过/通过/通过/通过分别表示绿色和失败/失败/失败表示红色,则Excel单元格颜色将根据文本更改。在


Tags: 代码in名称ifbackelsecolorworkbook
2条回答

未定义passorfail。另外,您试图设置错误的单元格背景颜色。在

以下是包含修复的代码(passorfailraw_input()读取):

import xlwt

with open('input.txt', 'r') as f:
    passorfail = f.read()

workbook = xlwt.Workbook()
worksheet = workbook.add_sheet('Status')

style = xlwt.easyxf()
pattern = xlwt.Pattern()
pattern.pattern = xlwt.Pattern.SOLID_PATTERN

if passorfail in ['pass', 'Passed', 'passed']:
    pattern.pattern_fore_colour = xlwt.Style.colour_map['green']
elif passorfail in ['fail', 'Failed', 'failed']:
    pattern.pattern_fore_colour = xlwt.Style.colour_map['red']

style.pattern = pattern
worksheet.write_merge(6, 6, 3, 3, passorfail, style=style)

workbook.save('passfail2.xls')
print "Completed"

编辑:

以下是从测试结果字典生成报告的代码:

^{pr2}$

希望有帮助。在

那句if/else的台词太可怕了。把它全部写出来,你就会知道问题出在哪里了。在

if passorfail in ['pass','Passed','passed']:
    color = passed
elif passorfail in ['fail','Failed','failed']:
    color = failed
else:
    color = xlwt.easyxf()

现在很明显,您所指的是passorfail,但是您还没有定义它。在

相关问题 更多 >