2016-12-02 81 views
0

我不能環繞我的頭邏輯。有人可以提出解決方案嗎?Python的迭代邏輯:迭代中的200組列表中openpyxl

我有一個Excel與A行10000項worksheet0 我要遍歷文件的行,但在200 這裏是組我似乎我乾的算法,不能投入代碼:

  1. 讀excel文件,worksheet0作爲源

  2. 創建使用openpyxl空Excel工作表,worksheet1

  3. itereate在第一200個項目O f從源工作表中的A列10000總計0

a。 strip()每個字符串項目 b。保存在worksheet1 columnA,ROW1的 '脫離' 新的字符串:row200

  • 創建新的空的工作表,worksheet2
  • 迭代在從worksheet0 row201的下一個200個項目:400 一個。 strip() b。在worksheet2保存
  • 重複這個創造新的工作表中,剝離和在這個新的工作表中保存每個組的200

    我只是不能得到算法遍歷的200個組,每個組新創建一個新的工作表文件。任何人都可以幫助算法嗎?

    # rowMax is the last row in columnA aka the length of my list to iterate over 
    
    for count in range(1, int(rowMax/200)): 
        _=wb.create_sheet(str(count)) 
        for row in range(count*2, 200*count): 
         targetEmail = str(ws1.cell(column=1, row=row).value).strip() 
         sourceEmail = str(ws1.cell(column=1, row=row).value) 
         if targetEmail != sourceEmail: 
          print("Correction required for: ", sourceEmail, "\nChanged to: ", targetEmail) 
    
         _.cell(column=1, row=row).value = targetEmail 
    

    上述不起作用。我只是把它有讓您瞭解,每200個項目我創建了一個新的工作表,然後保存在新的工作表中的下一個200個項目,然後重複此過程爲每個200項塊

    +1

    的可能的複製【什麼是最「Python化」的方式來遍歷在塊列表?(http://stackoverflow.com/questions/434287/what-is-the-most-pythonic-通過迭代方式遍歷數據塊) –

    +0

    是的,的確,另一篇文章回答了這個問題,但是使用了itertools。我想了解我自己如何幹這個代碼。 –

    +0

    你可以使用像'爲計數,X在枚舉(my_list):'然後使用模運算符,以每第200項如執行一些動作'如果計數%200 == 0:<做某事>'。不太清楚你在做什麼。 – roganjosh

    回答

    1

    這個問題太廣。您需要提供更多的代碼,並針對您希望解決的問題更具體。

    像下面這樣應該可以幫助你走了。

    colA = ws1['A'] 
    for idx, cell in colA: 
        if not idx % 200: 
         ws2 = wb.create_sheet() 
        ws2.append(cell.value.strip())