如何从文本文件中提取指定列数据并转换为列表?
提取文本文件第三列数字并转为列表
问题背景
我有一个包含数字表格的文本文件,内容如下:
5,10,6 6,20,1 7,30,4 8,40,3 9,23,1 4,13,6
我想要提取其中第三列的数字并转为列表,目前尝试了以下代码:
myNumbers.append(line.split(',')[2])
完整解决方案
你写的代码片段已经找对了方向,只需要补充完整的文件读取逻辑,同时注意处理每行末尾的换行符、将提取到的字符串转为数值类型即可。
方法一:基础文件读取写法
myNumbers = [] # 使用with语句会自动关闭文件,避免资源泄漏 with open('你的文件名.txt', 'r') as f: for line in f: # 先移除每行末尾的换行符,再按逗号分割内容 parts = line.strip().split(',') # 提取第三列(Python是*0开始计数*,所以索引为2),转成整数后加入列表 myNumbers.append(int(parts[2])) print(myNumbers) # 输出结果:[6, 1, 4, 3, 1, 6]
方法二:列表推导式(更简洁)
如果想要更紧凑的代码,可以用列表推导式一步完成:
with open('你的文件名.txt', 'r') as f: myNumbers = [int(line.strip().split(',')[2]) for line in f] print(myNumbers)
额外注意事项
- 确保文件路径正确,如果文件不在当前脚本的目录下,需要填写完整路径,比如
'D:/data/你的文件名.txt' - 如果文件中存在空行,建议添加判断逻辑跳过空行,避免出现索引错误:
with open('你的文件名.txt', 'r') as f: myNumbers = [] for line in f: stripped_line = line.strip() if stripped_line: # 仅处理非空行 parts = stripped_line.split(',') myNumbers.append(int(parts[2]))
内容的提问来源于stack exchange,提问作者Rashid Abramov
相关产品推荐
相关产品推荐

