我的文字文件是:
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()
但是我正在寻找能够专门返回每一行的东西,这样我可以使用该特定行处理我的排序代码。
澄清:我不是在寻找排序方面的帮助,我只想弄清楚如何一次查看每一行。
答案 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__)