将列表变量写入文件

Write list variable to file

我有一个 .txt 文件,里面有我想 'clean' 发誓的话,所以我写了一个程序,一个一个地检查单词列表的每个位置,如果如果单词出现在可审查单词列表中的任何位置,它会使用 var.remove(arg) 将其删除。它运行良好,列表很干净,但无法写入任何文件。

wordlist 是干净的列表。

    newlist = open("lists.txt", "w")
    newlist.write(wordlist)
    newlist.close()

这个returns这个错误:

    newlist.write(wordlist)
    TypeError: expected a string or other character buffer object

我猜这是因为我试图写入一个带有变量或列表的文件,但确实没有其他选择;列表中有 3526 个项目。

知道为什么它不能写入带有列表变量的文件吗?

注意:lists.txt不存在,是write方式创建的

write 写一个字符串。你不能写一个 list 变量,因为,即使对人类来说很明显它应该用 space 或单词之间的分号来写,但计算机没有自由进行这样的假设,并且应该提供您要写入的确切数据(按字节)。

因此您需要将此列表显式转换为字符串,然后将其写入文件。为了这个目标,

newlist.write('\n'.join(wordlist))

就足够了(并提供一个文件,其中每一行都包含一个单词)。


  • 对于某些任务,使用 str(wordlist) 转换列表(这将 return 类似 ['hi', 'there'] 的东西)并编写它会起作用(并允许通过 eval 方法检索),但考虑到长列表(每个单词添加大约 4 个字节),使用 space 会非常昂贵,并且可能需要更多时间。