2016-06-13 104 views
-4

我是一名Python初學者,無法理解這個問題。有人可以檢查我的代碼是否反映了說明/如何解決它?謝謝!Python:我如何按字典順序排列文件並將結果寫入文件?

問題:編寫一個函數sortFile(src,dst),它以字典順序逐行排列名爲src的文件,並將結果寫入名爲dst的文件而不用修改src。提示:如果f是文件對象,則列表(f)將整個文件作爲行列表讀取。使用列表的排序方法進行排序,並使用字符串的聯接方法來連接字符串列表。例如,排序text.txt會導致一個文件:

蘋果是紅色的。

香蕉是藍色的。

水果很棒。

的text.txt文件:

蘋果是紅色的。

香蕉是藍色的。

水果很棒。

我的代碼:

def sortFile(src, dst): 
    x, y = open(src, 'r'), open(dst, 'w') 
    b = x.readlines() 
    x.close() 
    b.sort() 
    for i in b: 
     print((str(i).strip()), file=y) 
    y.close() 

回答

1

我會用file.write(字符串)寫入到輸出中的文件:

def sortFile(src, dst): 
    x, y = open(src, 'r'), open(dst, 'w') 
    b = x.readlines() 
    x.close() 
    b.sort() 
    for i in b: 
     y.write(i.strip() + "\n") 
    y.close() 

我測試了這一點,它應該產生正確的結果。

+0

在這種情況下'.write'和'print'不應該產生不同的輸出。你爲什麼認爲這會有所作爲? – SethMMorton

+0

@spookyblack例如,您只需調用sortFile(「testFile.txt」,「output.txt」)。第二個參數只是創建一個名稱的文件來寫入輸出,但請注意,如果該文件已存在,它將被覆蓋。 – Andrew

+0

也@SethMMorton我不認爲它會有所作爲,write()只是更好的代碼實踐imho,因爲它更清楚你在做什麼。 – Andrew