2011-04-29 72 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)