Python – 从元组CSV文件中删除大括号和逗号

我正在打印到这样的csv文件:

bdictionary = ## bdictionary is a big list of tuples
w = csv.writer(open("testnucsv.csv", "w"))
for sent in bdictionary:
    w.writerow(sent)

它的打印效果非常好,看起来像这样:

(u’My’, u’D’) (u’dog’, u’N’)……………
(u’The’, u’D’) ……………………….

我怎么能像这样打印出来

My D dog N
The D

这是我尝试过的,但它无法正常工作.它分裂了每个charachter:

w = csv.writer(open("testnucsv.csv", "w"))
for sent in bdictionary:
    sent = ''.join(str(v) for v in sent)
    w.writerow(sent)

最佳答案 将它包装在一个列表中,writerow期望一个可迭代的,所以它迭代你的字符串将它分成单个字符:

sent = [' '.join(" ".join(v) for v in sent)]

你还需要加入元组中的字符串,而不是在元组上调用str,即:

t = [(u'My', u'D'), (u'dog', u'N')]

print(" ".join([" ".join(v) for v in t]))
My D dog N

您也可以使用file.write并将其传递给连接的字符串:

with open("testnucsv.csv", "w") as f:
   for sent in bdictionary:
        f.write(" ".join([" ".join(v) for v in sent])+"\n")
点赞