[英]Basic Python loop question - problem reading a list from a text file
我正在尝试从文本文件中读取项目列表,并使用方括号和分隔符进行格式化,如下所示:['item1','item2',....'last_item']但我在开始时遇到了麻烦和我经常得到的结束项目:...,'last_item','],所以我不希望最后一个''在那儿。
在python中,我写了:
out_list = "['"
for line in open(file_in):
out_list += line #append the item to the list
out_accession_list += "','" #add the separator
out_accession_list += "]" #add the final closed bracket
return out_list
我意识到这是一个基本的循环问题,但我想不出最好的方法。 我应该使用try final语句,应该是while循环,还是应该先计算行数,然后再使用带范围的循环?
帮助非常感谢。
谢谢,约翰
阅读所有行,并使用string.join()
方法将它们连接在一起。
lines = open(file_in).readlines()
out_list = "['" + "','".join(lines) + "']"
另外, join()
可以采用任何顺序,因此无需读取行。 上面的代码可以简化为:
out_list = "['" + "','".join(open(file_in)) + "']"
out_list = []
for line in open(file_in):
out_list.append("'" + line + "'")
return "[" + ",".join(out_list) + "]"
您在添加最后一个“]”之前将结果“”删除“”。
例如使用string.rstrip(",")
要么
result = "['"
for line in open(file_in):
if len(result) > 0:
result += "','"
result += line
result += "']"
return result
您所需的输出格式正是Python列表的标准可打印表示形式。 因此,一种简单的解决方案是读取文件,创建一个以每行作为字符串元素的列表(将每行的末尾剥去),然后调用Python内置函数repr来生成该列表的字符串表示形式:
>>> repr([line.rstrip() for line in open(file_in)])
"['item1', 'item2', 'item3']"
def do(filepath):
out = []
for line in open(filepath, 'r'):
out.append("'" + line.strip() + "'")
return out.__str__()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.