将列表变量写入文件

时间:2017-04-29 23:59:28

标签: python list slice file-writing

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

private void myFunction(final String subjectId) { Query query = mDatabaseRef.orderByKey().equalTo(subjectId); //I need to use query mDatabaseRef.addValueEventListener(new ValueEventListener() { @Override public void onDataChange(DataSnapshot dataSnapshot) { Person newPerson = dataSnapshot.getValue(Person.class); //?? How to use query's value instead } @Override public void onCancelled(DatabaseError databaseError) { } }); } 是清单。

var.remove(arg)

返回此错误:

wordlist

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

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

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

1 个答案:

答案 0 :(得分:2)

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

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

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

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

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