2017-09-05 50 views
1

我從Stackoverflow找到了以下Python代碼,它打開一個名爲sort.txt的文件,然後對包含在文件中的數字進行排序。打開文本文件,對文本文件進行排序,然後使用Python保存文件

代碼完美。我想知道如何將排序後的數據保存到另一個文本文件。每次嘗試時,保存的文件都顯示爲空。 任何幫助,將不勝感激。 我想保存的文件被稱爲sorted.txt

with open('sort.txt', 'r') as f: 
    lines = f.readlines() 
numbers = [int(e.strip()) for e in lines] 
numbers.sort() 

回答

0

您可以f.write()使用:

with open('sort.txt', 'r') as f: 
    lines = f.readlines() 
numbers = [int(e.strip()) for e in lines] 
numbers.sort() 

with open('sorted.txt', 'w') as f: # open sorted.txt for writing 'w' 
    # join numbers with newline '\n' then write them on 'sorted.txt' 
    f.write('\n'.join(str(n) for n in numbers)) 

測試用例:

sort.txt

1 
-5 
46 
11 
133 
-54 
8 
0 
13 
10 

sorted.txt運行程序之前,它不存在,運行後,它的創建,並具有排序號內容:

-54 
-5 
0 
1 
8 
10 
11 
13 
46 
133 
0

從當前文件獲取排序的數據並保存到一個變量。 以寫入模式('w')打開新文件,並將保存的變量中的數據寫入文件。

0

隨着<file object>.writelines()方法:

with open('sort.txt', 'r') as f, open('output.txt', 'w') as out: 
    lines = f.readlines() 
    numbers = sorted(int(n) for n in lines) 
    out.writelines(map(lambda n: str(n)+'\n', numbers)) 
相關問題