将列表变量写入文件

问题描述 投票:2回答:1

我有一个.txt文件,我想“清理”咒骂词,所以我写了一个程序,检查单词列表的每个位置,如果单词出现在列表中的任何位置可靠的单词,它用var.remove(arg)删除它。它工作正常,列表很干净,但不能写入任何文件。

wordlist是清单。

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

这会返回此错误:

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

我猜这是因为我试图写一个带有变量或列表的文件,但实际上没有替代品;列表中有3526个项目。

任何想法为什么它不能写入带有列表变量的文件?

注意:lists.txt不存在,它是由写入模式创建的。

python list slice file-writing
1个回答
2
投票

write写了一个字符串。你不能写一个list变量,因为,即使对于人类来说,很明显它应该用单词之间的空格或分号书写,计算机没有空闲的做出这样的假设,并且应该提供精确的数据(字节)明智的)你想写。

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

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

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


  • 对于某些任务,使用str(wordlist)转换列表(将返回类似['hi', 'there']的内容)并编写它将起作用(并允许通过eval方法检索),但考虑到长列表,这将是非常昂贵的空间使用(每个字增加大约4个字节) )并且可能需要更多时间。
© www.soinside.com 2019 - 2024. All rights reserved.