Python - 使用带有.rstrip()的.readlines(),然后将所有单词存储到列表

时间:2017-05-13 08:30:02

标签: python list with-statement readlines

我希望能够从包含120,000多个单词的文本文件(dictionary.txt)中删除\ n字符(.rstrip(' \ n'))。然后计算每一行并返回txt文件中的单词数量(每个单词都在它自己的行上)。 然后最后希望将所有单词存储到列表中。

此刻,下面的代码会返回行数,但不会删除\ n字符,以便将其存储到列表中。

 def lines_count():
        with open('dictionary.txt') as file:
            print (len(file.readlines()))

2 个答案:

答案 0 :(得分:1)

如果您想要没有尾随换行符的行列表,可以使用str.splitlines()方法,在这种情况下,您可以使用file_obj.read()将该文件作为字符串读取,然后使用{{1}整个字符串。虽然,splitlines()函数已经从您的行中返回了一个生成器(您可以在处理行时简单地删除尾随换行符),或者只需调用open,就不需要这样的事情。一个str.strip()来创建条纹线的迭代器:

map

但是,如果您只想将单词计算为pythonic方式,则可以在with open('dictionary.txt'): striped_lines = map(str.strip, f) 函数中使用生成器表达式,如下所示:

sum

请注意,在您拆分线条时无需剥离新线条。

e.g。

with open('dictionary.txt') as f:
    word_count = sum(len(line.split()) for line in f)

但是如果你仍然想要列表中的所有单词,你可以使用列表推导而不是生成器表达式:

In [14]: 'sd f\n'.split()
Out[14]: ['sd', 'f']

答案 1 :(得分:0)

如果你想返回没有this.router.navigate(['../dock-request'], {relativeTo: route}); 的行列表,然后打印这个列表的长度:

\n