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

2024-05-05 16:12:19 发布

您现在位置: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,其余的不重要

我正在读取的文件的确切格式是文件路径,紧接着是新行上的stat(以数字的形式)。下面是一个虚构的例子 enter image description here


Tags: 文件字符串in程序信息排序文件名报告
1条回答
网友
1楼 · 发布于 2024-05-05 16:12:19

看起来filename/stats每隔一行交替出现。您可以读取filename,在下划线上拆分以提取可能感兴趣的信息,然后添加下一行作为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

相关问题 更多 >