Python 循环不工作 (xlwt)

Python cycle is not working (xlwt)

我在 Python 中有这段代码,应该可以工作。

python

import xlwt 

#== change variables according to requirements ==#

numoftopcol = 5

numoftestcases = 4

coltext = ['Test Case', 'Test Name', 'Duration', 'Factual Result', 'Result (Pass/Fail)']

testN = ['void','Get Counter Result', 'Read Stats', 'Client Initialization', 'Start Server']

#== change variables according to requirements ==#

styleH = xlwt.easyxf('font: name Arial, bold on, color-index blue;')

styleH.font.height = 400

stylee = xlwt.easyxf('font: name Arial')

wb = xlwt.Workbook()

ws = wb.add_sheet('Test Case Overview')

c = 0

numoftopcol += 1

for c in range(c,numoftopcol):

     ws.write(0, c, coltext[c], styleH),

     ws.col(c).width = 7000


import random

c = 1

numoftestcases += 1

for c in range(c,numoftestcases):

     strC = str(c),

     ws.write(c,0,'TC-'+strC,stylee),

     ws.write(c,1,testN[c],stylee),

     ws.write(c,2,'DUR',stylee),

     ws.write(c,3,'RandomStr',stylee),

     randomint = random.randint(0,1),

     if randomint == 0:

          ws.write(c,4,'PASS',stylee)

     else:

          ws.write(c,4,'FAIL',stylee)

现在,第一个周期运行良好(带有 styleH 的周期)。第二个不起作用(stylee)。调试我发现,c=1 和 numoftestcases=5。所以如果 c < numoftestcases 或 1<5,那么循环应该有效,对吗?

显然不是。我在 cmd 中得到以下错误输出(第二个周期)。

forTraceback (most recent call last): File "", line 2, in IndexError: list index out of range

Traceback (most recent call last): File "", line 3, in TypeError: cannot concatenate 'str' and 'tuple' objects

这有什么问题? 我记得早些时候这个工作。我没有更改循环代码,但现在它不起作用。

我也试过在第二个循环的第一行打印一个 print(c) 并且输出只有 1。后面没有更多的数字。

检查xls文件,电子表格中只写了第一个周期。

我将此代码存储在一个文本文件中,这样我就可以在需要时在 cmd 中调用此命令。

首先:索引超出范围:您将 numoftopcol 定义为列表的 len 5,但就在循环之前您递增它...现在访问该索引会产生超出范围...

错误的根本原因是 excel 坐标从 1 开始,但 python 列表是从 0 开始索引的。我会做从 0n 的循环,并且只为 xlwt 调用添加 1,而不是做你正在做的所有 +1 事情。

第二:连接错误:你没有 post 任何堆栈跟踪,但

strC = str(c),

创建一个 tuple。下一行:

 ws.write(c,0,'TC-'+strC,stylee),

尝试将 str 添加到 tuple

我发现了问题所在。我必须将 cnumoftestcases 的数据类型转换为 int.

int(c)
int(numoftestcases)

案件破案。现在可以使用了。