如何在Python中使用.writerow()进行切片

2024-04-23 22:57:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我对writerow()函数有问题。我有一个像这样的对象(顺序矩阵):

[[datetime.datetime(2008, 11, 20, 16, 0), 'AA', 'Buy', '100'],     
[datetime.datetime(2008, 11, 28, 16, 0), 'AA', 'Sell', '100'],
[datetime.datetime(2009, 2, 17, 16, 0), 'AA', 'Buy', '100']]

我想用CSV格式写出来:

^{pr2}$

我尝试在for循环中使用writerow()函数:

with open('orders.csv', 'w') as orders_file:
  writer = csv.writer(orders_file)
  for row in orders_matrix:
    writer.writerow([row[:4], row[5:7], row[8:10], row[11:]])

但无法转换datetime对象并添加其他元素。我想知道是否有可能做到这一点,以及如何做到。在


Tags: csv对象函数fordatetime顺序矩阵buy
2条回答

您可以使用datetime.timetupledatetime对象转换为struct_time对象,然后在将所需信息转换为列表后将其切片

with open("orders.csv", "wb") as fin:
    writer = csv.writer(fin)
    for row in orders_matrix:
        writer.writerow(list(row[0].timetuple())[:3] + row[1:])

可以使用datetime对象的year、month、day属性获取相关值。所以,最后一行可以改为:

writer.writerow([row[0].year, row[0].month, row[0].day, row[1], row[2], row[3]])

相关问题 更多 >