【发布时间】:2020-06-17 15:56:51
【问题描述】:
我正在使用 python 3 版本并使用 xlrd 包处理 excel 表 当前的excel表在单行中存储有价格数字,如下所示
price
10
22
34
45
这些数字将在服务器中自动生成,并且需要取出并存储在不同列表中的行值(一个列表的大小最大为 10),类似于
price_list_1 = price.row_values(10)
price_list_2 = price.row_values(11,20)
...
...
这样可以存储前 10 个值,然后将另外 10 个值递增存储到 price_list_2 等等。 目前为了打开和阅读我正在做如下。
Price_LIST = 'Daily_price_list/' + 'Price_List_2020.xlsx'
PriceList = xlrd.open_workbook(Price_LIST)
List = PriceList.sheet_by_index(0)
我在这里查看了一些答案并尝试了但没有成功。 在这里需要帮助。
编辑
我可以通过下面的代码做到这一点。
count = 0
for count in range(2, List.nrows):
if count < 11:
price_list_1 = List.row_values(count)
print('\n Printing price_list_1\n',price_list_1)
elif 10 < count < 21:
price_list_2 = List.row_values(count)
print('\n Printing price_list_2\n',price_list_2)
elif 20 < count < 31:
price_list_3 = List.row_values(count)
print('\n Printing price_list_3\n',price_list_3)
elif 30 < count < 41:
price_list_4 = List.row_values(count)
print('\n Printing price_list_4\n',price_list_4)
elif 40 < count < 51:
price_list_5 = List.row_values(count)
print('\n Printing price_list_5\n',price_list_5)
count + 1
有了这个,我可以在每个列表中用 10 个值拆分行。 有什么办法可以优化这个循环吗? 编辑-2 在运行上面的代码时,我遇到了另一个问题 当我从行中读取值时,我得到的值如下。
['10', '', '', '']
@Grismar 提供的澄清和指示帮助。 要添加,我有不同的线程(准确地说是 5 个)运行,每个价格从第一行开始直到它达到 NULL。并且每个线程将继续定价直到结束。
【问题讨论】:
-
我是否正确假设您想要的是:从 Excel 工作表中读取单列数据(跳过标题);然后将数据分成最多 10 个项目的批次?您的解决方案似乎过于复杂,所以您还想在这里做什么?哪个声明导致列表
['10', '', '', ''],您期望它是什么? -
@Grismar:- 感谢您的回复,是的,您的假设是正确的。并使用 xlrd 我正在阅读 excel,但结果我得到的输出为
['10', '', '', '']这是字符串,我无法使用它。所以,请提出更好的方法。 -
请不要用更多真正与不同问题有关的问题来更新问题(或者可以说,您最初的问题与您最初遇到的问题无关) - 而是使用什么您已经从答案中学到了知识,如果您遇到更多问题,或者在解决方案方面需要帮助,请发布一个新问题。
标签: python list file-handling