File size: 1,114 Bytes
e1810a8 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
import re
from tname import *
from Rfile import *
def Sort_Scores(file):
scores = []
contents = j_reads(file.name)
for i in range(2, len(contents)):
if i % 2 == 0:
# 使用正则表达式
content = re.match('.*score=(\d.\d+?),', contents[i])
if content:
score = content.group(1)
scores.append(float(score))
na = Name()
na = na + r"scores_sort.tsv" # 结果文件名称
# 按列表scores中元素的值进行排序,并返回元素对应索引序列
sorted_id = []
sorted_id = sorted(range(len(scores)), key=lambda k: scores[k], reverse=True)
# 第一条序列和其他序列格式不一样,且第一条序列不需要排序,单独写入
with open(na, "a") as f1:
f1.write(contents[0])
f1.write(contents[1])
for i in range(0, len(scores)):
with open(na, "a") as f:
f.write(contents[sorted_id[i] * 2 + 2])
# 由于文件前两行未参与排序,所以索引要+2
f.write(contents[sorted_id[i] * 2 + 2 + 1])
return na
|