CSV逗点文件是个容易控制的文件,而且比较小,打开方便,经常会用到。比如用大量数据批量导入数据库,或者GPS记录的大量坐标文件的后处理。
如果你有大量的Excel文件,如何省时省力的将他们转化成CSV文件呢?
一个个另存为?当然如果你愿意这么做。可以的。
使用网上下载的xls2csv?你就一个个往里边拖吧。而且出来的结果还带引号。
好处是,不需要WinCOM支持,没装Office也 可以生成Excel表格。
首先,你要下载安装这个python的包,安装方法是 python setup.py install
代码如下:
2 # coding=utf-8
3 # writer:parming Email:ming5536@163.com
4 from pyExcelerator import *
5 import sys
6 import glob
7 class batxls2csv:
8 def __init__ (self):
9 pass
10 def savecsv1(self,arg):
11 matrixgolb = []
12 for sheet_name, values in parse_xls(arg, ' cp1251 ' ): # parse_xls(arg) -- default encoding
13 matrix = [[]]
14 for row_idx, col_idx in sorted(values.keys()):
15 # print row_idx,col_idx
16 # print matrix
17 v = values[(row_idx, col_idx)]
18 if isinstance(v, unicode):
19 v = v.encode( ' cp866 ' , ' backslashreplace ' )
20 else :
21 v = str(v)
22 last_row, last_col = len(matrix), len(matrix[ - 1 ])
23 # 下一行修改过
24 while last_row <= row_idx:
25 matrix.extend([[]])
26 last_row = len(matrix)
27
28 while last_col < col_idx:
29 matrix[ - 1 ].extend([ '' ])
30 last_col = len(matrix[ - 1 ])
31
32 matrix[ - 1 ].extend([v])
33 for row in matrix:
34 csv_row = ' , ' .join(row)
35 matrixgolb.append(csv_row)
36 return matrixgolb
37 print matrixgolb
38 def savecsv2(self):
39
40 filelist = glob.glob( " *.xls " )
41 for filenam in filelist:
42 matrixgolb = self.savecsv1(filenam)
43 namecsv = filenam[: - 4 ] + ' .csv '
44 file_object = open(namecsv, ' w+ ' )
45 for item in matrixgolb:
46 file_object.write(item)
47 file_object.write( ' \n ' )
48 file_object.close( )
49
50 if __name__ == " __main__ " :
51 test = batxls2csv()
52 test.savecsv2()
其实下载的包中也有些小例子,我对其做了一些修改。不过这个例子只适合excel中只有一个表单Sheet1的情况。把所有的excel文件和程序放在同一个文件夹下,稍等片刻,执行完毕!源文件及安装包