如何链接和排序多个变量? -Python

问题描述 投票:0回答:2

我正在读取一个文本文件,该文件具有文件名和数字形式的均值统计,例如:

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,其余部分无关紧要。

我正在读取的文件的确切格式是文件路径,后跟换行符(以数字的形式),并在换行符后加上新的数字。这是一个虚构的例子enter image description here

python
2个回答
0
投票

这是区分大小写的,因此只需屏蔽您不想与某种占位符共享的任何内容


0
投票

似乎文件名/统计信息每隔一行交替显示。您可以读取文件名,在下划线处拆分以提取可能有趣的信息,然后将下一行添加为统计值。现在,您可以对所需的任何列进行排序。

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
© www.soinside.com 2019 - 2024. All rights reserved.