批量处理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

时间: 2024-10-27 05:13:00

批量处理csv格式转换成xls的相关文章

将PDF格式转换成其它文档

经常处理文件工作的朋友相信对PDF格式不会陌生吧,这是Adobe公司所研发的一种专用的网络文件格式,俗称“电子书”,由于它的制作的文档特别适合交流.传播.保密性好等因此在办公领域中一直拥有很高的的使用率.但由于每个公司都有各自具体的要求,好多时候我们都需要快速将PDF格式转换成其它文档.那么今天,笔者就以最常见的PDF转DOC.PDF转Word.PDF转XLS为例向大家讲解一下具体的操作方法. 实现工具:迅捷PDF转换器 应用情景:利用PDF转换器中的健全识别功能来实现PDF转DOC文档在一定程

【系统那点事】如何将磁盘从GPT格式转换成MBR【win8换win7】

随机预装Win8的电脑,磁盘为GPT格式的,如果需要安装Win7等早期版本系统,需要转换为MBR格式的,使用Diskpart命令即可完成转换. 操作步骤: 注意:转换磁盘格式需要清空磁盘中的所有分区和数据,在操作前,请保存好磁盘中所有重要数据. 1.使用Win7光盘或者U盘引导,进入系统安装界面. 2.按Shift + F10打开命令提示符. 3.输入”Diskpart”(不用输入引号,下同),并按回车,进入操作界面 4.输入:”list disk”,查看磁盘信息.注意看磁盘容量来选择.图中46

将json的时间格式转换成正常的时间格式

/** * 对Date的扩展,将 Date 转化为指定格式的String * 月(M).日(d).12小时(h).24小时(H).分(m).秒(s).周(E).季度(q) 可以用 1-2 个占位符 * 年(y)可以用 1-4 个占位符,毫秒(S)只能用 1 个占位符(是 1-3 位的数字) * eg: * (new Date()).pattern("yyyy-MM-dd hh:mm:ss.S") ==> 2006-07-02 08:09:04.423 * (new Date())

Json 的日期格式转换成DateTime

JSON 的日期形式:"/Date(1242357713797+0800)/" , 下面我们就用以下C#的方法将他转换成DateTime类型: /// <summary> /// Json 的日期格式与.Net DateTime类型的转换/// </summary> /// <param name="jsonDate">Json 的日期,例如:/Date(928120800000+0800)/</param> ///

数字按照不同格式转换成字符串

如果自己写函数,不使用itoa怎么判断呢? 我们用通常的办法,对数字进行每位的除商,得到后与字符'0'相加. flag = 0; for(i=0;i<6;i++){ tmp = int(num/pow(10,5-i)); if(tmp != 0){ *str = 1; flag = 1; } if(*str != 0 || flag){ *str++ = tmp+'0'; num = num%int(pow(10,5-i)); } } 要注意的就是,我们设置标志位flag,为1之前的所有0都不输

C#使用FFmpeg 将视频格式转换成Gif图片示例

一.本次使用参数说明 /* * 参数说明: * -i 源文件位置 * -y 输出新文件,是否覆盖现有文件 * -s 视频比例 4:3 320x240/640x480/800x600 16:9 1280x720 ,默认值 'wxh',和原视频大小相同 * -f 等同'-formats',定义的可支持的文件格式'ffmpeg-formats',更多参考:https://ffmpeg.org/ffmpeg-formats.html * -vframes 数字类型,指定视频输出帧数 * -dframes

RSA的密钥把JAVA格式转换成C#的格式(2)

把C#格式转换成Java:RSA的密钥把JAVA格式转换成C#的格式(1) 我已经在第一篇介绍过如何把C#格式转换成Java,现在来看看如何把Java格式转换成C#. /// <summary> /// RSA加密 /// </summary> /// <param name="publickey"></param> /// <param name="content"></param> ///

如何将Virtualbox虚拟机的vdi的硬盘格式转换成VMware虚拟机可以使用的硬盘格式VMDK

如何将Virtualbox虚拟机的vdi的硬盘格式转换成VMware虚拟机可以使用的硬盘格式VMDK,由于VMware虚拟机的新版本不能使用Virtualbox虚拟机的磁盘格式.要在VMware中使用vdi格式的磁盘,只能在Virtualbox中,先把vdi格式的磁盘转换成vmdk格式的磁盘.   <-->  使用Vboxmanage工具即可完成转换. sudo vboxmanage clonehd XC_XP.vdi /usr/XC_XP.vmdk --format VMDK 0%...10

linux环境下deb格式 转换成rpm格式

linux环境下deb格式 转换成rpm格式 使用alien工具转换deb格式到rpm格式 alien_8.87.tar.gz 下载alien_8.87.tar.gz [[email protected] ~]# wget http://ftp.de.debian.org/debian/pool/main/a/alien/alien_8.87.tar.gz [[email protected] ~]# tar zxvf alien_8.87.tar.gz[[email protected] ~]