2011-04-29 71 views
0

我有下面的代码片段:的Python:设置条件的范围内,如果 - elif的 - else块

for row in lst: 
    if 'Type' in row[0]: 
     for col in range(len(row)): 
      #do something 
    elif (not 'Type' or '') in row[0]: 
     for col in range(len(row)): 
      #do something 
row_count +=1 

对于elif (not 'Type' or '')第二部分我怎么就没有如果增加row_count反其真只row[0] = ''但是当row[0]!= Type被满足时增加?我试图设置计数器条件,if-else块作为im逐行扫描lst,这基本上是从python中的csv阅读器读取的行。

也许我太过复杂了? Advices plz。

[编辑] - 这里是实际的代码,即时通讯使用xlwt模块写入工作表。

for row in spamReader: 
    if 'Type' in row[0]: 
     for col in range(len(row)): 
      ws.write(0,col,convert(row[col]),style) 
    elif (not 'Type' or '') in row[0]: 
     for col in range(len(row)): 
      ws.write(row_count,col,convert(row[col]),style) 
    row_count +=1 

更多细节: 我有这行的CSV文件,其中进出口扫描行。无论哪个行的第一个值是'Type',即时将它写入另一个xls工作表,以便它成为第一行。否则,它会继续逐行复制。但是,当行的第一列为空时,即'',它假设通过/忽略它。

+1

你能移动'row_count'语句转换成if块? – 2011-04-29 11:53:17

+0

什么时候你想增加'row_count'? – wong2 2011-04-29 11:56:56

+0

如果我将'row_count'语句移动到块中,我想在哪个缩进处对齐它?因为一旦它增加了计数器,下一个块就会在'do something'语句中使用它。 – siva 2011-04-29 11:57:40

回答

0

如何:

for row in spamReader: 
    if row[0] == '': 
     continue 

    if 'Type' in row[0]: 
     row_count = 0 
     ... start new worksheet ... 

    for col in range(len(row)): 
     ws.write(row_count,col,convert(row[col]),style)