2016-02-29 72 views
1

我有一個excel文件,其中的值在多行中以這種格式25/02/2016。我想將所有這些日期行保存在列表中。每一行都是一個單獨的值。我該怎麼做呢?到目前爲止,這是我的代碼:關於Python中的列表

我有一個excel文件,其中的值在這種格式的多行中25/02/2016。我想將所有這些日期行保存在列表中。每一行都是一個單獨的值。我該怎麼做呢?到目前爲止,這是我的代碼:

import openpyxl 
wb = openpyxl.load_workbook ('LOTERIAREAL.xlsx') 
sheet = wb.get_active_sheet() 
rowsnum = sheet.get_highest_row() 
wholeNum = [] 
for n in range(1, rowsnum): 
    wholeNum = sheet.cell(row=n, column=1).value 

print (wholeNum[0]) 

當我使用print語句,而不是打印的第一行的值應該是在列表中的第一項如25/02/2016,它正在打印第二行的第一個字符,它是數字2.顯然它正在切割日期。我希望第一行和後續行作爲單獨的項目保存在列表中。我究竟做錯了什麼?在此先感謝

回答

0

wholeNum = sheet.cell(row=n, column=1).value將單元格的值分配給變量wholeNum,因此您永遠不會向初始空列表中添加任何內容,並且每次只覆蓋該值。當你在最後調用wholeNum[0]時,wholeNum是最後一個被讀取的字符串,並且你得到它的第一個字符。

你很可能想要wholeNum.append(sheet.cell(row=n, column=1).value)積累一個列表。

0
wholeNum = 

這是一項任務。它使名稱wholeNum指向運算符右側的表達式所指向的任何對象。

for ...: 
    wholeNum = ... 

在循環中執行賦值通常沒有用。名稱wholeNum將引用在循環的最後一次迭代中分配給它的任何值。其他迭代沒有明顯的影響。

要將值附加到列表中,請使用.append()方法。

for ...: 
    wholeNum.append(...) 

print(wholeNum) 
print(wholeNum[0]) 
+0

感謝您的回答。當我嘗試按照建議使用append時,出現以下消息:wholeNum.append =(sheet.cell(row = n,column = 1).value) AttributeError:'list'object屬性'append'是隻讀的 – moremon

+0

@moremon正確的用法是'wholeNum.append(sheet.cell(row = n,column = 1).value)' – Copperfield