如何在python中使用特定的文本文件行?

时间:2013-04-15 06:43:11

标签: python file text readline

我的文字文件是:

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()

但是我正在寻找能够专门返回每一行的东西,这样我可以使用该特定行处理我的排序代码。

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

2 个答案:

答案 0 :(得分: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]

答案 1 :(得分: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__)