0

我确信有一种简单的方法可以做到这一点,所以就到这里吧。我正在尝试将我的列表导出为列中的 CSV。(基本上,这是另一个程序能够使用我生成的数据的方式。)我有一个名为 [frames] 的组,其中包含 [frame001]、[frame002]、[frame003] 等。我想要 CSV 文件生成的所有值在第一列中包含 [frame001],在第二列中包含 [frame002],依此类推。我想如果我可以将文件保存为 CSV,我可以在 Excel 中对其进行操作,但是,我认为有一个解决方案可以通过编程来跳过该步骤。

这是我迄今为止尝试使用的代码:

import csv

data = [frames]
out = csv.writer(open(filename,"w"), delimiter=',',quoting=csv.QUOTE_ALL)
out.writerow(data)

我也试过:

import csv

myfile = open(..., 'wb')
wr = csv.writer(myfile, quoting=csv.QUOTE_ALL)
wr.writerow(mylist)

最近我尝试过:

import csv

data = [frames]
out = csv.writer(open(filename,"w"), delimiter=',',quoting=csv.QUOTE_ALL)
out.writerows(zip(*data))

经过更多研究,我实际上需要构建一个 XML 文件,但我仍然需要数据以正确的顺序排列。即一列中[frame001]的内容,下一列中的[frame002]等。所有的帧都包含相同数量的信息。

再次感谢您的帮助!

这是前 2 列的数据示例: [255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0 , 0, 255, 0, 0, 255, 0, 0, 255, 0, 0, 255, 0, 0], [0, 171, 205, 0, 171, 205, 0, 171, 205, 0, 171 , 205, 0, 171, 205, 0, 171, 205, 0, 171, 205, 0, 171, 205, 0, 171, 205, 0, 171, 205]

什么时候应该:

255 0
0 171
0 205
255 0
0 171
0 205
255 0
0 171
0 205
255 0
0 171
0 205
255 0
0 171
0 205
255 0
0 171
0 205
255 0
0 171
0 205
255 0
0 171
0 205
255 0
0 171
0 205
255 0
0 171
0 205

我希望这是有道理的。

4

2 回答 2

0

您的最后一个解决方案应该可以正常工作。你得到了什么错误?

要转换为 xml,您只需为每个“行”创建一个字典并使用此处列出的解决方案之一:将Python 字典序列化为 XML

于 2012-07-23T21:24:00.910 回答
0

XML 并不是像 csv 这样的基于行和列的格式。它是分层的,可能不是存储行/列数据的最佳格式。您需要标签来指定行和列,如果您将其导入另一个应用程序,它需要知道行和列标签是什么才能正确解析它。

第二个应用程序也是用 python 编写的吗?如果是这样,只需使用 python pickle 模块来序列化您的 2D python 列表。这样,您的第二个应用程序可以将其作为 2D 列表读回,而不是将其来回编组为 csv 或 xml。

于 2012-07-23T21:44:11.647 回答