代码之家  ›  专栏  ›  技术社区  ›  Ryan

将字符串写入csv

  •  1
  • Ryan  · 技术社区  · 6 年前

    我附加了一些东西,最后我有一个列表,看起来像这样

    listed = ['53.02 12.36 120 33.6', 0.32 ,65 , '52 26.3 66 39.12' ,0.65 , 96]
    

    现在我在一个循环中运行这个,在循环的每一次迭代中,我都会得到这个列表,我想将这个列表附加到一个csv中,每一行都像这样

    53.02 12.36 120 33.6 0.32 65 52 26.3 66 39.12 0.65 96
    

    我试过这么做

            listed = ' '.join(str(ele) for ele in listed)
    

    但这给了每个数字一个类似这样的空间

    5,3,.,0,2, ,1,2,.,3,6, ,0,.,2
    

    我能怎么做吗

    部分代码如下所示

    f = open('Testing.csv', 'a')
    writer = csv.writer(f, delimiter = '\t')
    for index in range(len(dataset_train)):
    
            for box, score, label in zip(image_boxes, image_scores, image_labels):
                box = str(box).lstrip('[').rstrip(']')
                listed.append(box)
                listed.append(score)
                listed.append(label)
            listed = ' '.join(str(ele) for ele in listed)
            listed = list(listed)
            writer.writerow(listed)                
    

    提前谢谢

    2 回复  |  直到 6 年前
        1
  •  3
  •   Rakesh    6 年前

    import csv
    from itertools import chain
    
    listed = ['53.02 12.36 120 33.6', 0.32 ,65 , '52 26.3 66 39.12' ,0.65 , 96]
    listed = list(chain.from_iterable([str(i).split() for i in listed]))   #Flatten list
    
    with open(filename, "w") as infile:
        writer = csv.writer(infile, delimiter = '\t')
        writer.writerow(listed)        #Write row
    

    53.02   12.36   120 33.6    0.32    65  52  26.3    66  39.12   0.65    96
    
        2
  •  1
  •   Green Cloak Guy    6 年前

    .join()

    listed = ' '.join( [str(ele) for ele in listed] )
    

    [str(ele) for ele in listed]