[英]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.