【问题标题】:Write a list into Excel将列表写入 Excel
【发布时间】:2015-11-13 10:39:23
【问题描述】:

我有一个句子'现在完全不同'。我想对其进行标记、标记并将其存储到 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'), ('完全', 'RB'), ('不同', '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 '和\tCC\n'

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

【问题讨论】:

  • 如何使用shutil从文本复制到excel格式?您是否知道 excel 格式不仅仅是文件扩展名 (.xlsx)。这意味着文件的内容应该以特殊的方式组织,以便 Excel 应用程序知道如何读取它。一般可以使用xlsxWriter模块,也可以写成CSV格式的文件,然后在Excel中导入。

标签: python excel list file tagging


【解决方案1】:

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

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

【讨论】:

  • 我对熊猫一无所知,但会尝试您的建议并让您知道结果。
  • 我尝试了你的建议。我工作。非常感谢你。如果我有多个句子,这会起作用吗?
  • 是的。您还可以输出到不同的工作表,从不同的单元格开始,或使用标题/索引输出。如果您想一次将多个表写入不同的位置,请使用 pd.ExcelWriter。
【解决方案2】:

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

【讨论】:

  • 我尝试将文件保存为 .ts 格式,但仍然遇到同样的错误。谢谢你的建议。
猜你喜欢
  • 2013-02-06
  • 2018-12-06
  • 2017-09-06
  • 2018-02-16
  • 2019-12-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多