批量处理csv格式转换成xls
结合下面的代码学习相关模块及函数方法的使用
#coding:utf-8
#导入相应模块
import csv
import xlwt
import sys
import os
import fnmatch #另存为文件名
def ex_file(mycsvfile):
csvfile = open(mycsvfile,"rb")
#csvfile = open("test.csv","rb")
#新建excel文件
myexcel = xlwt.Workbook()
#新建sheet页
mysheet = myexcel.add_sheet("data")
#获取csv的文件绝对路径及文件名不包括后缀,
及os.path.splitext(“文件的绝对路径”)
返回的是一个含有两个元素的列表,
portion[0]是包含文件名的值,portion[1]是“.后缀”
portion = os.path.splitext(mycsvfile)
#读取文件信息
reader = csv.reader(csvfile)
l = 0
#通过循环获取单行信息
for line in reader:
r = 0
#通过双重循环获取单个单元信息
for i in line:
#通过双重循环写入excel表格
mysheet.write(l,r,i)
r=r+1
l=l+1
#最后保存到excel,以原有文件名保存,更换后缀
myexcel.save(portion[0]+".xls")
print portion[0] + '.xls' +u"保存成功!" #文件路径处理函数
def iterfindfiles(path, fnexp):
#os.walk() 函数返回三个函数,root就是path的的路径本身及 其下所有文件夹的路径了,
dir是path下面的文件夹名,没有就是一个空列表[],files是path以及path下的文件夹下的文件列表集合
#这样相当于遍历了path路径下的所有文件,这些可以通过print 他们的返回值来查看
for root, dirs, files in os.walk(path):
#fnmatch.filter(,) 返回值是得到的后缀为fnexp的文件 列表信息。
即在文件名包括后缀的files列表中匹配后缀为fnexp参数值的文件组成新的列表赋值给filename
for filename in fnmatch.filter(files, fnexp):
#root为当前遍历时的路径,这里的os.path.join()方法是件root路径和filename拼接为文件的绝对路径
#yield 是为函数iterfindfiles()的返回值追加数据的有迭代的意思,每次循环就返回一个返回值,一直追加返回
yield os.path.join(root, filename)
#批量处理
if __name__=="__main__":
#输入要转换文件的路径
path=raw_input("Please enter a path:")
#数据要转换文件的文件名因为是批处理,所以使用通配符 “*”号 “*.csv” 表示目标路径下的所有csv格式文件
fnexp=raw_input("Please enter a fnexp:")
#调用文件处理函数
for filename in iterfindfiles(path, fnexp):
#filename 是接收返回值列表的,返回一个值调用一次ex_file()函数,并把返回值作为参数
ex_file(filename)
raw_input ('please enter to exit')
代码中用到的函数说明
1、os.walk(path)
import os for root, dirs, files in os.walk(r'D:\testDemoCode'): print root #当前遍历到的目录的根 print dirs #当前遍历到的目录的根下的所有目录的名称,存储到列表中 print files #当前遍历到的目录的根下的所有文件名包括后缀,存储到列表中
2、fnmatch.filter(files, fnexp)
在files文件列表中匹配后缀为fnexp的文件,并把匹配到的结果返回到一个列表中
3、os.path.join(root, filename)
把文件名filename和文件路径root拼接在一起作为一个整体
4、yield
yield相当于一个迭代器,会把返回值一个一个的返回给主函数
5、os.path.splitext(mycsvfile) && os.path.split("文件名称")
分解文件的绝对路径和扩展名的到的是一个列表[]
fpathandname , fext = os.path.splitext( "你要分解的路径")
例如:
a, b = os.path.splitext( "c:\\123\\456\\test.txt" )
print a
print b
显示:
c:\123\456\test
.txt
将一个路径名分解为目录名和文件名两部分
fpath , fname = os.path.split( "你要分解的路径")
例如:
a, b = os.path.split( "c:\\123\\456\\test.txt" )
print a
print b
显示:
c:\123\456
test.txt
批量处理csv格式转换成xls的更多相关文章
- C#返回时间格式转换成 js 字符串
在.net 中,调用 post 或者 get和后台通信时,如果有时间返回信息,后台返回的时间信息一般是这样格式:Thu Jul 9 23:14:53 UTC+0800 2015,那么要在前台显示就会有 ...
- json格式转换成Map的应用
jsp 1.引用json.js(将json格式转换成字符串) 2. var name = document.getElementById("name").value; var re ...
- linux环境下deb格式 转换成rpm格式
linux环境下deb格式 转换成rpm格式 使用alien工具转换deb格式到rpm格式 alien_8.87.tar.gz 下载alien_8.87.tar.gz [root@mysqlnode2 ...
- C#使用FFmpeg 将视频格式转换成Gif图片示例
根据EFmpeg封装的视频转换gif工具:https://my.oschina.net/tianma3798/blog/825317 一.本次使用参数说明 /* * 参数说明: * -i 源文件位置 ...
- 怎样将M4A音频格式转换成MP3格式
因为MP3音频格式应用的广泛性,所以很多时候我们都需要将不同的音频格式转换成MP3格式的,那么如果我们需要将M4A音频格式转换成MP3格式,我们应该怎样进行实现呢?下面我们就一起来看一下吧. 操作步骤 ...
- convert 批量文件的格式转换
1.将 a.gif 转为 png 格式 convert a.gif a.png 请注意,convert 命令的基本格式为 convert 源文件 [参数] 目标文件 在上面的命令中,源文件是 a.gi ...
- RSA的密钥把JAVA格式转换成C#的格式(2)
把C#格式转换成Java:RSA的密钥把JAVA格式转换成C#的格式(1) 我已经在第一篇介绍过如何把C#格式转换成Java,现在来看看如何把Java格式转换成C#. /// <summary& ...
- 不用 qlv 格式转换成 mp4 - 优雅的下载腾讯视频(mp4 格式)
不用 qlv 格式转换成 mp4 - 优雅的下载腾讯视频(mp4 格式) 问题描述: 朋友说离线腾讯视频是 qlv 格式的,只能使用腾讯视频软件打开.让我帮忙想想办法,能不能将 qlv 格式转换成 m ...
- (转)json格式转换成javaBean对象的方法
把json格式转换成javaBean才可以.于是查了一下资料,网上最多的资料就是下面的这种方式: Java code? 1 2 3 4 5 6 7 8 9 String str = "[{\ ...
随机推荐
- JSP作为img的src时chrome的bug
废话不说,直接上代码. 新建一个jsp文件,名为img.jsp,代码如下: <%@page import="javax.imageio.ImageIO"%> <% ...
- Fragment与Activity
一个Fragment的实例总是和包含它的Activity直接相关. fragment可以通过getActivity() 方法来获得Activity的实例,然后就可以调用一些例如findViewById ...
- Android 展示键盘时候布局被修改的问题
解决方法,在mainfest.xml中,对那个Activity加: <activity android:name=".activity.HomeActivity"androi ...
- 使用事件CreateEvent注意事项
HANDLECreateEvent( LPSECURITY_ATTRIBUTESlpEventAttributes,// 安全属性 BOOLbManualReset,// 复位方式 BOOLbInit ...
- python连接redis002
例子001. 通过StrictRedis模式连接到redis.并调用get命令读取了一个string类型的值. #!/usr/bin/python #!coding:utf-8 import redi ...
- JVM调优的几种策略(转)
JVM参数调优是一个很头痛的问题,可能和应用有关系,别人说可以的对自己不一定管用.下面是本人一些JVM调优的实践经验,希望对读者能有帮助,环境LinuxAS4,resin2.1.17,JDK6.0,2 ...
- select自动选中
//筛选 var typeid = "<!--{$typeid}-->"; var bigclassid = "<!--{$bigclassid}--& ...
- xcode 5与ios 7的屏幕适配问题
#define DEVICE_IS_IPHONE5 ([[UIScreen mainScreen] bounds].size.height == 568) float height = DEVICE_ ...
- Java面向对象知识点精华
- hdu 1181 变形课(dfs)
Problem Description 呃......变形课上Harry碰到了一点小麻烦,因为他并不像Hermione那样能够记住所有的咒语而随意的将一个棒球变成刺猬什么的,但是他发现了变形咒语的一个 ...