-1

我的文本文件是这样的:

467 119 635 231 234 858
786 463 715 745 729 574 856 806 339 106 487
798 791 392 916 177 115 948 871 525

如您所见,有三个具有不同数值的单独行。我的任务是对它们进行分类,但只对它们所在的行进行分类。所以基本上,我需要将第一行从小到大排序,然后将第二行从小到大排序,第三行也是如此。

该程序指定它需要使用此 .txt 文件中的值。所以我想要做的是一次查看每一行并处理该行,用代码对其进行排序,然后将其放回原处。

我的问题是:如何让 python 一次只看一行?

我知道这段代码读取了第一行:

f = open("numbers.txt", "r")
f.readline()

但我正在寻找只返回每一行的东西,这样我就可以使用该特定行的排序代码。

澄清:我不是在寻求排序方面的帮助,我只是想弄清楚如何一次单独查看每一行。

4

2 回答 2

1
for line in f:
    nums = map(int, line.split())
    # looks at one line at a time, you can sort it now

如果您希望它们一次全部加载

nums = [map(int, line.split()) for line in f]

现在您可以像 , 一样访问它nums[0]nums[1]对于每个单独的行。

于 2013-04-15T06:44:29.830 回答
0

这是一个可以做你想做的事情的功能。只需给它文件的路径,剩下的就交给它了。

注意:它是一个生成器。

def read_sort(file_path):
    with open(file_path) as f:
        for line in f:
            yield sorted(map(int, line.split()))


print list(read_sort(__path_to_file__)
于 2013-04-15T06:48:22.050 回答