siv*_*iva 18 python csv excel xlrd xlwt
我有几个csv文件,我想作为excel工作簿(xls/xlsx)中的新工作表转储.我该如何实现这一目标?
谷歌搜索并发现'pyXLwriter',但似乎该项目已停止.虽然我尝试'pyXLwriter'想知道有没有替代品/建议/模块?
非常感谢.
[编辑]
这是我的解决方案:(任何人都有更精简,更多的pythonic解决方案?做评论.thx)
import glob
import csv
import xlwt
import os
wb = xlwt.Workbook()
for filename in glob.glob("c:/xxx/*.csv"):
(f_path, f_name) = os.path.split(filename)
(f_short_name, f_extension) = os.path.splitext(f_name)
ws = wb.add_sheet(str(f_short_name))
spamReader = csv.reader(open(filename, 'rb'), delimiter=',',quotechar='"')
row_count = 0
for row in spamReader:
for col in range(len(row)):
ws.write(row_count,col,row[col])
row_count +=1
wb.save("c:/xxx/compiled.xls")
print "Done"
Run Code Online (Sandbox Code Playgroud)
Joh*_*hin 28
不确定你的意思是"更精简,更多的pythonic",但你肯定可以稍微修饰一下:
import glob, csv, xlwt, os
wb = xlwt.Workbook()
for filename in glob.glob("c:/xxx/*.csv"):
(f_path, f_name) = os.path.split(filename)
(f_short_name, f_extension) = os.path.splitext(f_name)
ws = wb.add_sheet(f_short_name)
spamReader = csv.reader(open(filename, 'rb'))
for rowx, row in enumerate(spamReader):
for colx, value in enumerate(row):
ws.write(rowx, colx, value)
wb.save("c:/xxx/compiled.xls")
Run Code Online (Sandbox Code Playgroud)