python - 如何链接和排序多个变量?
问题描述
我正在阅读一个文本文件,该文件具有文件名和数字形式的平均统计信息,例如:
文件名
0.6597
这会一遍又一遍地重复,因为这是从程序生成的报告。我想知道如何做到这一点,这样我就可以将文件名和统计信息结合起来,这样它们就永远不会相互分离。然后能够同时按文件名和统计数据对它们进行排序。文件名中将包含子字符串,这些子字符串可以与具有相同子字符串的其他文件名匹配。该子字符串表示它们在地球上的物理位置,必须相应地进行分组。一旦根据文件名中子字符串的匹配方式对它们进行排序,我就可以按照其中哪个具有最高平均值(数字)对它们进行排序。这是我到目前为止所拥有的。
def openfile():
list = []
with open('TestReportWrite.txt', 'r') as f:
for line in f:
if 'Processed' in line:
list.append(line)
elif '.' in line:
list.append(line)
else:
pass
return list
我可以成功建立一个列表,但文件名和统计信息没有相互链接,也不会一起排序。我不太确定如何链接它们。
文件名的一个示例是 LC08_L1TP_027042_20190917_20190925_01_T1 我想要排序的部分是027042,其余的无关紧要。
解决方案
看起来文件名/统计信息每隔一行交替出现。您可以读取文件名,在下划线处拆分以提取可能感兴趣的信息,然后将下一行添加为 stats 值。现在您可以对任何您想要的列进行排序。
def openfile():
my_list = []
with open('TestReportWrite.txt', 'r') as f:
for line in f:
# assuming the underscores split the interesting parts
# consistently
columns = line.strip().split('_')
# add the stats
columns.append(next(f).strip())
my_list.append(parts)
# sorted by the part you want in column 2
my_list.sort(key=lambda col:col[2])
return my_list
推荐阅读
- amazon-web-services - 如何从提交的 Spark 应用程序步骤中获取 AWS EMR 集群 ID 和步骤 ID
- mongodb - 如何在 MongoDB 中的多个级别的嵌入式文档中进行查询?
- python - 在 discord.py 中按标签命令搜索用户
- python - xlrd 将excel数据解析为txt
- redirect - 在 Cloudfront 自定义错误响应中,有没有办法强制更新浏览器导航栏的重定向?
- html - 无法创建导航选项卡链接重定向到新页面
- javascript - 无法切换 ToneJS 振荡器的 start()/stop()
- android - 为什么我的应用程序在某些虚拟设备中无法以横向模式启动
- node.js - passport-oauth2 生成的访问令牌未按预期工作
- c++ - 标准类型的运算符重载;双 % 双