Python程序:批理转化Excel成CSV文件
2016-11-10 21:37
477 查看
CSV逗点文件是个容易控制的文件,而且比较小,打开方便,经常会用到。比如用大量数据批量导入数据库,或者GPS记录的大量坐标文件的后处理。
如果你有大量的Excel文件,如何省时省力的将他们转化成CSV文件呢?
一个个另存为?当然如果你愿意这么做。可以的。
使用网上下载的xls2csv?你就一个个往里边拖吧。而且出来的结果还带引号。
也有其它方法,比如使用 pywin32通过WinCOM来操作Excel表格,或者使用xlrd。
不过,我觉得,倘若你用PyExcelerator和Python就完全可以KO这个问题。
PyExcelerator的官方主页是http://sourceforge.net/projects/pyexcelerator
好处是,不需要WinCOM支持,没装Office也 可以生成Excel表格。
首先,你要下载安装这个python的包,安装方法是 python setup.py install
代码如下:
1 #! /usr/bin/env python
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文件和程序放在同一个文件夹下,稍等片刻,执行完毕!
如果你有大量的Excel文件,如何省时省力的将他们转化成CSV文件呢?
一个个另存为?当然如果你愿意这么做。可以的。
使用网上下载的xls2csv?你就一个个往里边拖吧。而且出来的结果还带引号。
也有其它方法,比如使用 pywin32通过WinCOM来操作Excel表格,或者使用xlrd。
不过,我觉得,倘若你用PyExcelerator和Python就完全可以KO这个问题。
PyExcelerator的官方主页是http://sourceforge.net/projects/pyexcelerator
好处是,不需要WinCOM支持,没装Office也 可以生成Excel表格。
首先,你要下载安装这个python的包,安装方法是 python setup.py install
代码如下:
1 #! /usr/bin/env python
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文件和程序放在同一个文件夹下,稍等片刻,执行完毕!
相关文章推荐
- Python程序:批理转化Excel成CSV文件
- Python学习笔记 --- pandas将excel转化为csv文件
- python:如何将excel文件转化成CSV格式
- Win7,64位下Python 读取csv文件(Excel转化的)并绘制图表
- Python学习笔记 --- python将 excel 文件转化为 csv 文件 (07版本及以下 和 07版本及以上)
- python实现将excel文件转化成CSV格式
- Python导出数据到Excel可读取的CSV文件的方法
- Python导出数据到Excel可读取的CSV文件的方法
- python中写入csv,excel显示、pandas读取csv文件的编码问题
- python 将Excel文件转csv
- [Excel] CsvHelper---C#关于CSV文件的导入和导出以及转化 (转载)
- 使用python处理中文csv文件,并让excel正确显示中文(避免乱码)
- 使用python处理中文csv文件,并让excel正确显示中文
- python读写word、excel、csv、json文件
- python输出excel能够识别的utf-8格式csv文件
- 使用web程序导出Excel,PDF和CSV三种文件
- DataTable 与 Excel文件(CSV)相互转化
- python数据分析-处理CSV/EXCEL表格文件
- Python处理unicode编码的txt文件(Python中文处理)——解决to_excel()和to_csv()导出文件内容为空的问题
- python数据分析之(4)读写数据文件CSV,EXCEL等