2015-11-16 368 views
0

有人可以告訴我如何在數據來自多個變量(例如名稱和年齡)時按字母順序對列中的CSV文件進行排序嗎?我需要按字母順序顯示姓名。使用Python按字母順序對CSV文件進行排序

這裏是我的代碼:

with open ("Information.csv", "a", newline="",) as CSVFile: 
    for_use = csv.writer (CSVFile, delimiter=",") 
    info = [[name, age]] 
    for_use.writerows(info) 
+1

您將不得不1)將整個CSV讀入內存,2)對其進行排序,3)將其輸出回CSV文件。您無法真正地在磁盤上「排序文件」。 – deceze

+0

感謝您的快速回復,這有所幫助。 – HannaG

回答

1

可以作爲dict然後讀有點像你排序的字典...

import csv 
with open('Information.csv') as csvfile: 
    reader = csv.DictReader(csvfile) 

    sorted = sorted(reader, 
       key=lambda k: (k['name'].lower(), k['age'])) # sorting by name and age 

sorted將是一個發生器產生的所有項目進行排序

+0

給我一個錯誤AttributeError:'DictReader'對象沒有屬性'項' – HannaG

+0

Oups,刪除'.items()' – Cyrbil

+0

** ValueError:關閉的文件上的I/O操作**不起作用! – HannaG

相關問題