2012-11-06 75 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