如何在Python中拆分并存储文本文件中分号分隔的数据
问题原因
你调用的append()方法会将split()返回的整个列表作为单个元素存入目标列表,最终得到的是嵌套列表[['apples', 'oranges', 'grapes']],因此长度为1。
解决方案
场景1:仅处理文件单行内容
直接将split()的返回值赋值给列表即可,无需额外追加操作:
# 推荐用with语法自动管理文件句柄,避免资源泄漏 with open("doc.txt", "r", encoding="utf-8") as doc: line = doc.readline().strip() alist = line.split(";") print(alist) # 输出:['apples', 'oranges', 'grapes'] print(len(alist)) # 输出:3
场景2:需要处理文件多行内容,所有拆分项存入同一个列表
将append()替换为extend()方法,该方法会将传入可迭代对象的元素逐个追加到列表中:
alist = [] with open("doc.txt", "r", encoding="utf-8") as doc: for line in doc: line = line.strip() # 跳过空行避免存入空元素 if not line: continue stuff = line.split(";") alist.extend(stuff) print(alist) print(len(alist))
内容的提问来源于stack exchange,提问作者CuriousCoder
相关产品推荐
相关产品推荐

