2016-02-29 69 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