2013-03-01 52 views
1

我想從列表中打開多個csv文件,然後將它們轉換爲xls文件。Python:從列表中打開csv文件並將它們轉換爲xls

我做的,代碼:

import sys, csv, xlwt 

files = ['/home/julien/excel/csv/ABORD2.csv'] 

for i in files: 
    f=open(i, 'rb') 
    g = csv.reader ((f), delimiter=";") 
    workbook=xlwt.Workbook() 
    sheet= xlwt.Workbook() 
    sheet = workbook.add_sheet("Sheet 1") 

    for rowi, row in enumerate(g): 
     for coli, value in enumerate(row): 
      sheet.write(rowi,coli,value) 
     workbook.save(i + ".xls") 

我的XLS文件將兩者created.But我只有XLS的路徑。 例如,對於文件ABORD.xls只有下面的表達式寫的是:

'/home/julien/excel/csv/ABORD2.xls' 

請問您有什麼建議嗎?

+0

您的代碼,乍看之下,相貌端正給我。此外,在這裏給出的示例代碼中有* no *變量將等於'/ home/julien/excel/csv/ABORD2.xls';只有''/ home/julien/excel/csv/ABORD2.csv.xls''。 – 2013-03-01 12:57:02

+0

其實它的作品!是的,你是對的,我忘了正確重命名xls。謝謝Martijn! – Julien 2013-03-01 13:20:21

回答

4

先生,你unnecessairly創建兩個工作簿和你保存工作簿錯誤identation

import csv, xlwt 

files = ['test.csv'] 

for i in files: 
    f=open(i, 'rb') 
    g = csv.reader ((f), delimiter=";") 
    wbk= xlwt.Workbook() 
    sheet = wbk.add_sheet("Sheet 1") 

    for rowi, row in enumerate(g): 
     for coli, value in enumerate(row): 
      sheet.write(rowi,coli,value) 

    wbk.save(i + '.xls') 
+0

縮進效果很好。但是,謝謝你的幫助! – Julien 2013-03-01 13:20:51

+2

好吧,上面的代碼對我來說工作得很好。 – 2013-03-01 13:24:06

+1

也爲我工作。我很容易將其修改爲輸出一個包含多個工作表的Excel文件 - 在for循環之外初始化一次工作簿,並在循環內部創建不同名稱的工作表。我用這個答案:http://stackoverflow.com/a/9137934/1317713自動調整列寬。 – Leonid 2015-09-13 20:06:02

相關問題