split函数返回意外结果:逗号分隔文本行拆分不符合预期
解决逗号分隔数据的拆分问题
嘿,我一眼就瞅出你代码里的问题啦!你现在用的x.split()是默认按任意空白字符(空格、换行符这类)拆分,但你的数据明明是用逗号分隔的,自然没法得到你想要的按逗号拆分的结果。
修正后的代码
只需要把拆分规则改成指定逗号作为分隔符,同时记得用strip()去掉每行末尾的换行符,避免最后一个元素带着\n的尾巴:
filename = '1880.txt' with open(filename) as f: content = f.readlines() # 先清理换行符,再按逗号拆分每行内容 content = [x.strip().split(',') for x in content]
你要的预期结果
执行这段代码后,content会变成你想要的样子:
[['Mary', 'F', '6919'], ['Anna', 'F', '2698'], ['Emma', 'F', '2034'], ['Elizabeth', 'F', '1852'], ['Margaret', 'F', '1658'], ['Minnie', 'F', '1653']]
进阶小提示
如果之后你的数据可能变得复杂(比如出现带引号的字段、不规则的空格),用Python内置的csv模块会更靠谱,它能自动处理各种CSV格式的细节,示例代码给你参考:
import csv filename = '1880.txt' with open(filename, 'r') as f: reader = csv.reader(f) content = list(reader)
内容的提问来源于stack exchange,提问作者Raady
相关产品推荐
相关产品推荐

