【发布时间】:2016-08-10 22:39:11
【问题描述】:
基本上,我有一个巨大的文件,所有文件包含每行多个单词,每个单词用空格分隔。有点像这样:
WORD WORD WORD WORD
ANOTHER
WORD SCRABBLE BLAH
YES NO
我想要做的是将文件中的所有单词放入一个巨大的列表中,我尝试使用 split 但这并没有考虑到新行(\n)
【问题讨论】:
标签: python string file loops python-3.x
基本上,我有一个巨大的文件,所有文件包含每行多个单词,每个单词用空格分隔。有点像这样:
WORD WORD WORD WORD
ANOTHER
WORD SCRABBLE BLAH
YES NO
我想要做的是将文件中的所有单词放入一个巨大的列表中,我尝试使用 split 但这并没有考虑到新行(\n)
【问题讨论】:
标签: python string file loops python-3.x
通过for line in f 读取会在换行符上拆分,它在内存方面很有效(一次读取一行),但将所有内容放在一个巨大的列表中却不是。无论如何,如果你坚持:
huge_list = []
with open(huge_file, "r") as f:
for line in f:
huge_list.extend(line.split())
要将整个文件作为字符串读入内存,请改用f.read():
huge_list = []
with open(huge_file, "r") as f:
huge_list = f.read().split()
输入文件(用空格和换行符分隔的单词):
WORD WORD WORD WORD
ANOTHER
WORD SCRABBLE BLAH
YES NO
两个例子的输出:
>>> huge_list
['WORD', 'WORD', 'WORD', 'WORD', 'ANOTHER', 'WORD', 'SCRABBLE', 'BLAH', 'YES', 'NO']
>>>
【讨论】:
huge_list。你试过运行它吗?
['word','another', 'word', 'etc'] 正是输出的样子。