Python中如何分割元组中的数字与字符

题目描述

把从txt中提取出来的数据定义成五元组为:(姓名,班别,科目,分数,单位),存成list列表

TXT中的数据:小明:A001班,语文,50分

        小红:B002班,数学,100分
        小美:A001班,英语,80分
        小马:C003班,数学,20分

题目来源及自己的思路

        现在已经使用re.split以符号‘,’ ‘:’进行分割,得到了四个元素,但不太清除最后一个XX分该如何分割成 XX  分

有好心的大佬可以顺手指导一下怎么解决输出的信息是unicode码 例:('xefxbbxbfxe5xb0x8fxe6x98x8e', 'A001xe7x8fxad', 'xe8xafxadxe6x96x87', '50xe5x88x86n') 正确应是:(‘小明’, ‘A001班’, ‘语文’, ‘50’, ‘分’)的问题

感激不尽

相关代码

// 请把代码文本粘贴到下方(请勿用图片代替代码)

--coding:utf-8--

import re
filename = file(r"D:PyCharm01data.txt",'r')
content = []
for line in filename.readlines():

print line
people = tuple(re.split(r',|:',line,))
content.append(people)

print content

你期待的结果是什么?实际看到的错误信息又是什么?

目前的结果是:print content[0]
输出:('xefxbbxbfxe5xb0x8fxe6x98x8e', 'A001xe7x8fxad', 'xe8xafxadxe6x96x87', '50xe5x88x86n')

正确的结果应该是:print content[0]

           (‘小明’, ‘A001班’, ‘语文’, ‘50’, ‘分’)
弑天下
浏览 1659回答 2
2回答

噜噜哒

我用python3 写出来是这样的,加了个encoding=utf-8 import re content = [] with open('D:PyCharm01data.txt', 'r', encoding='utf-8') as f: for line in f.readlines(): people = tuple(re.split(r',|:',line,)) content.append(people) print(content[0]) 结果是这样的 ("'小红", 'B002班', '数学', "100分'")
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python