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

4

我正在这样将内容打印到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

这是我尝试过的方法,但它没有起作用。它把每个字符都分开了:

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

2

将其包装在列表中,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")

最后一段代码无法编译。语法无效。 - Nate Cook3
谢谢,第一个代码块就可以了,这也是我一直在用的,但我看了你的第三个代码块后,发现它对我来说编译不过去。谢谢! - Nate Cook3
1
@NateCook3,不用担心,不客气。谢谢你让我知道。 - Padraic Cunningham

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接