繁体   English   中英

如何从 Python 中的文本文件创建列表?

[英]How do I make a list from a textfile in Python?

我有一个 txt 文件,其中包含由行分隔但有一些空行的名称。 当我执行以下代码时,output 数组中的每一秒名称都会被省略。 这是为什么?

def get_string_list(string_textfile):
    list = []
    file = open("names.txt", "r")
    for line in file:
       line = file.readline()[:-1]
       list.append(line.lower())

    return list

当你迭代文件时

for line in file:
    # you read line just now it exists
    line = file.readline() 
    # uh oh you just read another line... you didnt do anything with the first one

一般不要将文件的迭代与 readline 混合(事实上,我认为现代 python 版本如果尝试混合这两者会引发错误)

如果您想要的只是行列表,您可以执行以下任何操作

lines = list(file)
# or 
lines = file.readlines()

你只能得到 non_empty 行并删除换行符,如下所示

lines_stripped = list(filter(None,(l.strip() for l in file)))

不是超级pythonic,但它很好,简洁而且很清楚它在做什么

修改如下语句:

for line in file:
    list.append(line.strip().lower())
list = [name for name in list if name]

添加最后一行以删除空行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM