将列表写入 Excel

Write a list into Excel

我有一句话'And now for something completely different'。我想对其进行标记化、标记并将其存储到 excel 文件中以供进一步处理。
<pre>sent = "And now for something completely different" words = nltk.word_tokenize(sent) tags = nltk.pos_tag() print tags</pre>

上面的结果是带有嵌套列表格式的标签的单词。

[('And', 'CC'), ('now', 'RB'), ('for', 'IN'), ('something', 'NN'), ('completely', 'RB'), ('different', 'JJ')]

我想将这个结果列表存储到一个 excel 文件中,一列是单词,另一列是标签。

我尝试了以下代码来实现上述目标。

fd = open("output.txt",'w')
i=0
for words in tags:
    for word in words:
        i+=1
        fd.write(word)
        if i==1:
            fd.write('\t')
        fd.write('\n')
    i=0

以上代码将单词和标签完美写入输出文件。如果我使用 shutil 方法从文本文件复制到 excel 格式,它将完美执行。当我尝试读取转换后的内容时,问题就来了。我收到以下错误。

XLRDError: Unsupported format, or currupt file: Expected BOF record; founf 'And\tCC\n'

谁能告诉我如何将标记列表写入输出文件,以便解决上述错误?

改为写入 excel 格式。您已经将文件写入制表符分隔值。 Excel 知道怎么读。我建议您使用“.tsv”扩展名保存您的文件并在 excel.

中打开它

Excel 文件 (xlsx) 不仅仅是简单的平面文件,因此尝试将文本文件复制到 xlsx 是行不通的。您可以将文件另存为 csv 并在 Excel 中打开它。我觉得pandas对解析和写入数据文件真的很有用(显然对处理数据也很有用)

import pandas as pd
df = pd.DataFrame(tags)
df.to_excel('output.xlsx', header=False, index=False)