将列表变量写入文件
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 会非常昂贵,并且可能需要更多时间。
我有一个 .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 会非常昂贵,并且可能需要更多时间。