我有这个值列表:
list_a的输出:
list_a: [[[2.0, 4.0], [1.0, 2.0]], [[2.0, 4.0], [2.0, 3.0], [3.0, 1.0]], [[3.0, 6.0], [5.0, 5.0], [6.0, 4.0]], [[3.0, 6.0], [4.0, 7.0]], [[2.0, 4.0], [3.0, 6.0]]]
我想以特定格式将其导出到csv文件,以便每组值都按以下格式占用一个单元格:
(2.0; 4.0) | (1.0; 2.0)
(2.0; 4.0) | (2.0; 3.0) | (3.0; 1.0)
...
“|”表示同一行上的单元格分隔(不包括在csv文件中),单元格中值的格式应为圆括号和分号(X1; X2)
我尝试了以下但是我得到括号和冒号:
with open('outputdata.csv', 'w') as outfile:
mywriter = csv.writer(outfile)
for d in result:
mywriter.writerow(d)
感谢任何帮助!
答案 0 :(得分:0)
在没有编写器的情况下生成输出文件可能更容易:
SEP = ',' # Use any other separator here, if you want
with open('outputdata.csv', 'w') as outfile:
for line in list_a:
outfile.write(SEP.join(['({}; {})'.format(*pair) for pair in line]))
outfile.write("\n")
答案 1 :(得分:0)
您可以尝试自己编写csv,而不需要任何编写器类:
with open('outputdata.csv', 'w') as f:
for vector in list_a:
len_ = len(vector)
for i, point in enumerate(vector):
f.write("({}; {})".format(*point))
# avoid writing the last pipe
if i != len_ - 1:
f.write(" | ")
f.write("\n")
内容:
(2.0; 4.0) | (1.0; 2.0)
(2.0; 4.0) | (2.0; 3.0) | (3.0; 1.0)
(3.0; 6.0) | (5.0; 5.0) | (6.0; 4.0)
(3.0; 6.0) | (4.0; 7.0)
(2.0; 4.0) | (3.0; 6.0)
答案 2 :(得分:0)
试试这个:
with open('outputdata.csv', 'w') as outfile:
mywriter = csv.writer(outfile)
for d in result:
row = ' | '.join(['(%f; %f)' % (t[0], t[1]) for t in d])
mywriter.writerow(d)
每行的每个元素都是两个浮点数的数组,对吗?因此,我们使用格式字符串将[2.0, 4.0]
转换为"(2.0; 4.0)"
。我们为行中的每个元组执行此操作。然后,我们只使用python的join()
函数将字符|
放在它们之间,并将它们全部链接到一个字符串中,我们可以将其写入文件。