2012-11-06 41 views
0

在unix(具体来说,我使用bash),我可以很容易地排序文件的内容;给我有一个文件:排序文件内容

[email protected]:~$ cat testSort.txt 
3  1  test01 
8  2  test02 
6  3  test03 
7  4  test04 
1  5  test05 

运行sort基于第一列将返回排序值

[email protected]:~$ sort testSort.txt 
1  5  test05 
3  1  test01 
6  3  test03 
7  4  test04 
8  2  test02 

其结果,我可以管到程序需要一个文件或;有没有像Python这样容易的方法,或者我需要读取我的文件,将它保存为某种数据结构,然后再保存它?

混乱

我不知道为什么我收到了downvote - 我问是否有办法在UNIX一样简单(即一个字的命令),实现了排序。我甚至提供了一个例子来展示我想要的东西?这意味着“这个问题没有显示研究工作,它不清楚或没有用”?

+5

你觉得'sort'能做到吗? –

+1

下面是用Python重新实现的'sort':'sys.stdout.writelines(sorted(sys.stdin))'。 –

+0

@MartijnPieters - 我完全不知道'sort'实际上是如何工作的 – ChrisW

回答

3

你想干什么?按照字典顺序排列,但可以根据任意标准对其进行修改,方法是将其他key函数传递给sorted

with open('input') as f: 
    sorted_file = sorted(f) 

#save to a file 
with open('output') as f: 
    f.writelines(sorted_file) 

#write to stdout 
import sys 
sys.stdout.writelines(sorted_file) 
+0

我猜OP可能想要结果stdout虽然... –

+0

看起来像没有1行答案,然后!回到阅读编程Python,因为我不太明白这个答案... – ChrisW

+1

@ChrisW - 你的意思是'import sys; sys.stdout.writelines(排序(开放( '输入')))'?这是两行加''' - 但是这样写代码真的不是个好主意。 – mgilson