从 x.dat 解析到 x.csv 时将字符串更改为特定整数?

我在 x.dat 中有如下数据:


1::F::1::10::48067

2::M::56::16::70072

3::M::25::15::55117

我想通过将M转换为1和F转换为2来转换为x.csv,因此csv中的新结果是:


1,2,1,10,48067

2,1,56,16,70072

3,1,25,15,55117

如何在 Python 中做到这一点?


沧海一幻觉
浏览 157回答 2
2回答

芜湖不芜

使用replace功能:with open("x.csv", "w") as fw:    with open("x.dat", "r") as fr:        for line in fr:            new_line = line.replace("::", ",").replace("F", "2").replace("M", "1")            fw.write(new_line)使用re模块:import rerep = {    "F": "2",    "M": "1",    "::": ",",}rep = dict((re.escape(k), v) for k, v in rep.iteritems())pattern = re.compile("|".join(rep.keys()))with open("x.csv", "w") as fw:    with open("x.dat", "r") as fr:        for line in fr:            new_line = pattern.sub(lambda m: rep[re.escape(m.group(0))], line)            fw.write(new_line)

胡子哥哥

这应该有效:with open("x.dat") as f:    with open("x.csv", "w") as f1:        for line in f:            m= line.split("::")            if(m[1]=='M'):                m[1]=1            else:                m[1]=2            for ele in m:                f1.write(str(ele)+',')
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python