结合下面的代码学习相关模块及函数方法的使用

#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的更多相关文章

  1. C#返回时间格式转换成 js 字符串

    在.net 中,调用 post 或者 get和后台通信时,如果有时间返回信息,后台返回的时间信息一般是这样格式:Thu Jul 9 23:14:53 UTC+0800 2015,那么要在前台显示就会有 ...

  2. json格式转换成Map的应用

    jsp 1.引用json.js(将json格式转换成字符串) 2. var name = document.getElementById("name").value; var re ...

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

    linux环境下deb格式 转换成rpm格式 使用alien工具转换deb格式到rpm格式 alien_8.87.tar.gz 下载alien_8.87.tar.gz [root@mysqlnode2 ...

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

    根据EFmpeg封装的视频转换gif工具:https://my.oschina.net/tianma3798/blog/825317 一.本次使用参数说明 /* * 参数说明: * -i 源文件位置 ...

  5. 怎样将M4A音频格式转换成MP3格式

    因为MP3音频格式应用的广泛性,所以很多时候我们都需要将不同的音频格式转换成MP3格式的,那么如果我们需要将M4A音频格式转换成MP3格式,我们应该怎样进行实现呢?下面我们就一起来看一下吧. 操作步骤 ...

  6. convert 批量文件的格式转换

    1.将 a.gif 转为 png 格式 convert a.gif a.png 请注意,convert 命令的基本格式为 convert 源文件 [参数] 目标文件 在上面的命令中,源文件是 a.gi ...

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

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

  8. 不用 qlv 格式转换成 mp4 - 优雅的下载腾讯视频(mp4 格式)

    不用 qlv 格式转换成 mp4 - 优雅的下载腾讯视频(mp4 格式) 问题描述: 朋友说离线腾讯视频是 qlv 格式的,只能使用腾讯视频软件打开.让我帮忙想想办法,能不能将 qlv 格式转换成 m ...

  9. (转)json格式转换成javaBean对象的方法

    把json格式转换成javaBean才可以.于是查了一下资料,网上最多的资料就是下面的这种方式: Java code? 1 2 3 4 5 6 7 8 9 String str = "[{\ ...

随机推荐

  1. 关于淘宝的数据来源,针对做淘宝客网站的淘宝api调用方法

    上次写了个淘宝返利模式的博客,直接被移除首页,不知道何故啊.可能是真的跟技术不太刮边. 众所周知,能够支撑一个网站运营的最基础不是程序写的多么好.也不是有多么牛X的运营人员,最主要的是数据,如果没有数 ...

  2. python编码格式

    python编码总结: 1).首先python有两种格式的字符串,str和unicode,其中unicode相当于字节码那样,可以跨平台使用. str转化为unicode可以通过unicode(),u ...

  3. swift笔记06

    for in循环 for 被乘数 in 1...5{ println("\(被乘数) 乘以 5 等于 \( 被乘数 * 5)"); } let  女神们 = ["小林&q ...

  4. eclipse 软件的背景颜色、字体设置

    1.eclipse 背景色设置: Window->Preferences->General->Editors->Text Editors->Backgroud color ...

  5. Qt 鼠标样式特效探索样例(一)——利用时间器调用QWidget.move()函数

    Qt 鼠标样式特效探索样例(一)       心血来潮,突然想在Qt里玩一把鼠标样式,想到在浏览网页时,经常看到漂亮的鼠标动画,于是今天摸索着乱写个粗糙的demo,来满足自己的好奇心. 效果图 方案要 ...

  6. HTTP based RESTful APIs - asp.net web api

    1.HTTP http://www.w3.org/Protocols/rfc2616/rfc2616.html 2.REST是什么http://www.ics.uci.edu/~fielding/pu ...

  7. 我(webabcd)的文章索引

    [最后更新:2014.08.28] 重新想象 Windows Store Apps 系列文章 重新想象 Windows 8 Store Apps 系列文章 重新想象 Windows 8 Store A ...

  8. linux之SQL语句简明教程---WHERE

    我们并不一定每一次都要将表格内的资料都完全抓出.在许多时候,我们会需要选择性地抓资料.就我们的例子来说,我们可能只要抓出营业额超过 $1,000 的资料.要做到这一点,我们就需要用到 WHERE 这个 ...

  9. js 跨域访问

    错误log :  XMLHttpRequest cannot load http://192.168.17.131:8080/wm/topology/links/json. No 'Access-Co ...

  10. flume【源码分析】分析Flume的拦截器

    h2 { color: #fff; background-color: #7CCD7C; padding: 3px; margin: 10px 0px } h3 { color: #fff; back ...