将一行用空格隔开的行写入一个csv文件所有元素都在不同的b中

2024-09-25 00:29:40 发布

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

我有一个元组,其中一个元素只是一个字符串,另一个元素是一个列表('x',['y','z']),我想将元组输出到一个csv文件中,其中所有不同的元素都在同一行,但块不同。在

这是我到目前为止的情况

 outputwriter=csv.writer(open('output.csv','wb'), delimiter=' ')
 for tup in in_tup:
    print (tup[0]+' '.join('%s' %x for x in tup[1]))
    outputwriter.writerow(tup[0]+' ' +' '.join('%s' %x for x in tup[1]))

当我第一次打印元组时,输出是

^{pr2}$

但是当我把它输出到csv时,我得到了一个单块“A1”中的所有文本,依此类推。我在打开csv writer时尝试了一个分隔符,但它不起作用。有什么想法吗


Tags: 文件csv字符串in元素列表foroutput
3条回答

您不需要将列表中的不同元素连接起来。{1}或者你希望用分隔符来分隔的元素。如果确实要使用空格作为分隔符,则以下代码应该有效:

outputwriter = csv.writer(open('output.csv', 'w'), delimiter = ' ')
for tup in in_tup:
    outputwriter.writerow([tup[0], tup[1][0], tup[1][1]])

但是,如果您要按照Danny的建议在excel中打开它,您需要将分隔符改为逗号,“,”。在

outputwriter = csv.writer(open('output.csv', 'w'), delimiter = ' ')
for tup in in_tup:
    inputList = [tup[0]]
    inputList.extend(tup[1])
    outputwriter.writerow(inputList)

这种行为是正确的:您只向每一行添加一个元素(这是通过连接所有元组创建的一个长字符串)。在

用一个序列调用writerow()来获得多个列。在

相关问题 更多 >