2016-08-03 52 views
2

我有一個Excel文檔,我正在閱讀,它有未知數量的行,我想添加每行和三個值的列AB和C到一個清單,然後停止,一旦我達不到。然後我想對列表中的每個項目執行一個操作。python添加項目列表,並停止當你得到一個空值

如果有人可以幫忙,我很難與if/for loops

以下是加載參數3作爲工作簿和工作表。我需要從第A61行開始,並將A61,B61,C61添加到列表中,並繼續前進,直到無論如何爲止。

好吧,所以我得到了這麼多,現在我該如何運行行中每個項目的命令?

if len(sys.argv) > 3: 
wb = xlrd.open_workbook(sys.argv[3]) 
sheet = wb.sheet_by_index(0) 
first_kvm_ip = str(sheet.cell_value(34,1)) 
last_kvm_ip = str(sheet.cell_value(35,1)) 
kvm_netmask = str(sheet.cell_value(36,1)) 
rows = sheet.nrows 
curr_row = 52 
while (curr_row < rows - 1): 
    curr_row += 1 
    row1 = int(sheet.cell_value(curr_row,0)) 
    row2 = str(sheet.cell_value(curr_row,1)) 
    vlanls1.append(row1) 
    vlanls2.append(row2) 

我想在ROW1 每個項目運行命令vlan命令創建(ROW1,ROW2)

我想我需要一個爲我迭代。我只需要幫助。

我需要爲ROW1的每個迭代運行此命令和行2

mo = FabricVlan(parent_mo_or_dn="fabric/lan", sharing="none", name=row2,   id=row1, mcast_policy_name="", policy_owner="local", default_net="no",  pub_nw_name="", compression_type="included") 
handle.add_mo(mo) 

好吧,我想我終於得到它。謝謝你們的幫助。

if len(sys.argv) > 3: 
    wb = xlrd.open_workbook(sys.argv[3]) 
sheet = wb.sheet_by_index(0) 
first_kvm_ip = str(sheet.cell_value(34,1)) 
last_kvm_ip = str(sheet.cell_value(35,1)) 
kvm_netmask = str(sheet.cell_value(36,1)) 
rows = sheet.nrows 
curr_row = 52 
while (curr_row < rows - 1): 
    curr_row += 1 
    row1 = int(sheet.cell_value(curr_row,0)) 
    row2 = str(sheet.cell_value(curr_row,1)) 
    vlanls1.append(row1) 
    vlanls2.append(row2) 
for x,y in zip(vlanls1,vlanls2): 
    mo = FabricVlan(parent_mo_or_dn="fabric/lan", sharing="none", name=y, id=x, mcast_policy_name="", policy_owner="local", default_net="no",  pub_nw_name="", compression_type="included") 
    handle.add_mo(mo) 
+1

什麼都你嘗試過到現在?你有沒有試過尋找類似的問題,讀取谷歌或stackoverflow上的Excel文件? –

+0

絕對的,在放棄之前一直在尋找大約3-4個小時。它不會讀取我真正需要幫助的excel文件,它將數據添加到列表並執行列表中的項目數量,然後停止。 – BMOO

回答

1

worksheet.rows返回所有行的列表,不管有多少行。該列表中的每一行本身都是該行中單元格的列表。瞭解了這一點,實現一個for循環將很容易,該循環遍歷每一行並將前三個單元格追加到新列表中。

此代碼應該做的伎倆。

myList = [] 
for row in sheet.rows: 
    myList.append([row[0],row[1],row[2]]) 

我建議通過openpyxl文檔雖然它會避免你一些麻煩來。此外,閱讀起來的方式,對循環工作,如果你知道你有麻煩與他們:)

http://openpyxl.readthedocs.io/en/default/index.html

http://www.tutorialspoint.com/python/python_for_loop.htm

+0

您可以在原始帖子的結尾處發帖嗎?我無法分辨這個擁擠的空間中發生了什麼 – ProgramGamer

相關問題