python处理某些文件夹下的csv文件,提取指定行到新文件中

来源:互联网 发布:php注册登录 编辑:程序博客网 时间:2024/05/29 17:31

需求:

提取2017-06--2017-08三个月的数据中的某些行到一个新的文件中。

思路:

1.循环读取每个文件夹下的每一个文件

2.解析文件,把满足条件的数据写到list中

3.把list写入新文件。

代码如下:【环境是Windows7专业版+Python2.7.9】

# -*- coding:utf-8 -*-import osimport csvimport sys__author__ = 'zengqiang.wang'#解决中文乱码问题defaultencoding = 'utf-8'if sys.getdefaultencoding() != defaultencoding:    reload(sys)    sys.setdefaultencoding(defaultencoding)#需要遍历的文件夹paths = [r'E:\MyCodes\Python27\20171215\06_01_15',r'E:\MyCodes\Python27\20171215\06_16_30',r'E:\MyCodes\Python27\20171215\07_01_15',r'E:\MyCodes\Python27\20171215\07_16_31',r'E:\MyCodes\Python27\20171215\08_01_15',r'E:\MyCodes\Python27\20171215\08_16_31']#全局变量,存放从csv中读取出来的特定行global datadata = []for path in paths:    for filename in os.listdir(path):        csvFile = open(path + '/' + filename,'r')        reader = csv.reader(csvFile)        for item in reader:            if len(item) == 1:                pass            else:                insurance = item[5].decode("gbk")                if "泰康养老保险股份有限公司北京分公司" in insurance:                    data.append(item)        print "length of data:",len(data)    csvFile.close()#解析后的文件存放到result.csv文件中csvFile2 = open('result.csv','wb')#mode要写成wb,如果是w,则会出现空行的情况。writer = csv.writer(csvFile2)m = len(data)for i in range(m):    writer.writerow(data[i])#writer.writerow(newTitle)csvFile2.close()

原创粉丝点击