我正在打印到这样的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")