关于Python的文件操作问题,求大神们给出具体代码~ 感激不尽~
比如说我有一个待处理的txt文件:aaa.txt里面有三列信息第一列为A^AA^BB^B此类名称第一列和第二列中间有若干空格(每行的空格数可能不同)第二列为浮点数第二列和...
比如说我有一个待处理的txt文件:aaa.txt 里面有三列信息 第一列为A^A A^B B^B此类名称 第一列和第二列中间有若干空格(每行的空格数可能不同) 第二列为浮点数 第二列和第三列之间也有若干空格 第三列也为浮点数 现在我需要抓去第一列中“^”号两边名称不同的那一行信息且这一行信息中第三列中的浮点数为所有抓去出来的行数中最大的三个。将这三行信息返回给客户。 比如说有如下格式:
A^A 0.1413 0.8
A^B 0.12312 0.7
A^C 0,214 0.6
A^D 0,3145 0.9
A^E 0,3245 0.99
B^B 0.1354 0.9
那么我执行完这个程序以后 我将返回第一列两名称不同且第三列的前三名既:A^E A^D A^B的信息
返回的形式可以是创建一个txt文档 将这三组的信息写在这个文档里面
求大神解答给出代码~ 感激不尽 展开
A^A 0.1413 0.8
A^B 0.12312 0.7
A^C 0,214 0.6
A^D 0,3145 0.9
A^E 0,3245 0.99
B^B 0.1354 0.9
那么我执行完这个程序以后 我将返回第一列两名称不同且第三列的前三名既:A^E A^D A^B的信息
返回的形式可以是创建一个txt文档 将这三组的信息写在这个文档里面
求大神解答给出代码~ 感激不尽 展开
1个回答
展开全部
#!/usr/bin/env python
#-*- coding: utf-8 -*-
from __future__ import with_statement
import re
values = {}
lines = []
txt_file = 'data.txt'
out_file = 'result.txt'
data_re = re.compile(ur'^(\w)\^(\w)\s+.+?\s+(.+?)\s*$')
with open(txt_file, 'rU') as f:
for line in f:
if '^' in line:
temp = data_re.findall(line)
if temp != []:
name1, name2 = temp[0][:2]
if name1 != name2:
value = float(temp[0][-1])
name = '%s^%s' % (name1, name2)
if name not in values or values[name] < value:
values[name] = value
lines.insert(0, line.strip())
with open(out_file, 'w') as f:
f.write('\n'.join(lines[:3]))
#-*- coding: utf-8 -*-
from __future__ import with_statement
import re
values = {}
lines = []
txt_file = 'data.txt'
out_file = 'result.txt'
data_re = re.compile(ur'^(\w)\^(\w)\s+.+?\s+(.+?)\s*$')
with open(txt_file, 'rU') as f:
for line in f:
if '^' in line:
temp = data_re.findall(line)
if temp != []:
name1, name2 = temp[0][:2]
if name1 != name2:
value = float(temp[0][-1])
name = '%s^%s' % (name1, name2)
if name not in values or values[name] < value:
values[name] = value
lines.insert(0, line.strip())
with open(out_file, 'w') as f:
f.write('\n'.join(lines[:3]))
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询