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

#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. Android 真机调试显示offline

    今天调试程序部署的时候显示设备状态时offline. 然后突然想起来我通过命令行操作过设备. 然后找来一下,如下命令. adb kill-server adb devices

  2. 利用jQuery实现的Ajax 验证用户名是否存在

    异步刷新实现方式有多种,也可以借助JS的多种框架,下面是使用jQuery框架实现的AJAX 验证用户名是否存在 jQuery.ajax概述 HTTP 请求加载远程数据. 通过jQuery 底层 AJA ...

  3. Android code wiki

    Android code wiki Tip1: 类的全局静态变量的使用,这样可以静态变量只分配一次内存,可以不通过类的对象也就是可以通过类名直接使用该变量.(使用场景:Request_Code ,Re ...

  4. WebView高危接口安全检测

    高危]WebView高危接口安全检测共2处详细内容:在Android系统4.3.1~3.0版本,系统webview默认添加了searchBoxJavaBridge_接口,如果未移除该接口可能导致低版本 ...

  5. 数据库 count和sum区别

    最近备考软考,复习数据库时候,发现count和sum,貌似差不错.就仔细查了查. 表 人 id name number 1 贱人 3 2 好人 4 select count(number) from ...

  6. 使用ThinkPHP开发中MySQL性能优化的最佳21条经验

    使用ThinkPHP开发中MySQL性能优化的最佳21条经验讲解,目前,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显.关于数据库的性能,这并不只是DBA才需要担心的事,而这更 ...

  7. 1分钟快速生成用于网页内容提取的xslt

      1,项目背景   在<Python即时网络爬虫项目说明>一文我们说过要做一个通用的网络爬虫,而且能节省程序员大半的时间,而焦点问题就是提取器使用的抓取规则需要快速生成.在python使 ...

  8. windows10快捷键

    • 贴靠窗口:Win +左/右> Win +上/下>窗口可以变为1/4大小放置在屏幕4个角落  • 切换窗口:Alt + Tab(不是新的,但任务切换界面改进)  • 任务视图:Win + ...

  9. break语句的使用

    先举一个简单点的例子 #include<stdio.h> #include<stdlib.h> int main() { float a,b; char c; printf(& ...

  10. TensorFlow 深度学习笔记 从线性分类器到深度神经网络

    转载请注明作者:梦里风林 Github工程地址:https://github.com/ahangchen/GDLnotes 欢迎star,有问题可以到Issue区讨论 官方教程地址 视频/字幕下载 L ...