我正在读取一个文本文件,该文件具有文件名和数字形式的均值统计,例如:
FILENAME
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,其余部分无关紧要。
这是区分大小写的,因此只需屏蔽您不想与某种占位符共享的任何内容
似乎文件名/统计信息每隔一行交替显示。您可以读取文件名,在下划线处拆分以提取可能有趣的信息,然后将下一行添加为统计值。现在,您可以对所需的任何列进行排序。
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