我试图将值写入csv文件,使得每两次迭代,结果在同一行,然后下一个值打印到新行。任何帮助将不胜感激。谢谢! 这就是我到目前为止所做的:
import csv
import math
savePath = '/home/dehaoliu/opencv_test/Engineering_drawings_outputs/'
with open(str(savePath) +'outputsTest.csv','w') as f1:
writer=csv.writer(f1, delimiter='\t',lineterminator='\n',)
temp = []
for k in range(0,2):
temp = []
for i in range(0,4):
a = 2 +i
b = 3+ i
list = [a,b]
temp.append(list)
writer.writerow(temp)
我现在得到的结果是
[2 3][3 4][4 5][5 6]
[2 3][3 4][4 5][5 6]
但是我想得到这个(没有括号),其中一行中的每个数字都在一个单独的列中:
2 3 3 4
4 5 5 6
答案 0 :(得分:0)
尝试以下方法:
import csv
import math
savePath = '/home/dehaoliu/opencv_test/Engineering_drawings_outputs/'
with open(str(savePath) +'outputsTest.csv','w') as f1:
writer=csv.writer(f1, delimiter='\t',lineterminator='\n',)
temp = [2, 3]
for i in range(2):
temp = [x + i for x in temp]
additional = [y+1 for y in temp]
writer.writerow(temp + additional)
temp = additional[:]
这应该返回:
# 2 3 3 4
# 4 5 5 6
首先是包含数字2
和3
的临时文件。然后,您从0
循环到2
(不包括)。在每次迭代时,您都会通过当前索引递增临时值,然后使用临时列表的这些新值创建一个附加列表。完成后,您将两个列表连接在一起并将结果写入您的文件。此时,您可以将临时列表设置为等于附加列表的值,然后再继续下一次迭代。
我希望这会有所帮助。
答案 1 :(得分:0)
你呈现它的方式你可以用一个简单的种子和增量来做到这一点:
import csv
import os
save_path = "/home/dehaoliu/opencv_test/Engineering_drawings_outputs/"
with open(os.path.join(save_path, "outputsTest.csv"), "w") as f:
writer = csv.writer(f, delimiter="\t", lineterminator="\n")
temp = [2, 3, 3, 4] # init seed
increment = len(temp) // 2 # how many pairs we have, used to increase our seed each row
for _ in range(2): # how many rows do you need, any positive integer will do
writer.writerow(temp) # write the current value
temp = [x + increment for x in temp] # add 'increment' to the elements
导致:
2 3 3 4 4 5 5 6
但如果您的种子是:temp = [2, 3, 3, 4, 4, 5]
并且您决定生成4行,它仍会适应:
2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 11 11 12 12 13 13 14