博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python批量处理CSV文件
阅读量:5837 次
发布时间:2019-06-18

本文共 2427 字,大约阅读时间需要 8 分钟。

#encoding: utf-8__author__ = 'DELL'import csvimport globimport datetimeimport sysimport osreload(sys)#中文错误sys.setdefaultencoding( "utf-8" )'''@author likehua    CSV批处理'''class BatchProcessCSV:    def __init__(self,inputfolder="c:\\input\\",outputfolder="c:\\output\\"):        self.inputfolder=inputfolder        self.outputfolder=outputfolder    #批处理    def doBatchAction(self):        startTime=datetime.datetime.now()        print(u"开始处理...")        if (os.path.exists(self.outputfolder)==False):            #pass            os.makedirs(self.outputfolder)        list_dirs = os.walk(self.inputfolder)        for root, dirs, files  in list_dirs:            #print i             for file in files:                otput=self.outputfolder+file                self.readcsv2csv(self.inputfolder+file,otput)                print(u"Running.........................\n")        endTime=datetime.datetime.now()        print(u"处理完成,耗时:%f秒"%(endTime-startTime).seconds)    #读取一个csv提取部分信息生成新的CSV    def readcsv2csv(self,inputfile,outputfile):      with open(inputfile, 'rb') as csvfile:        o=open(outputfile,"wb")  #解决csv浏览乱码问题        o.write('\xEF\xBB\xBF');        writer=csv.writer(o)        #读取列 将字符串转为数组        column=csvfile.readline().split(",")        #print(column.index('App Release Date'))        #print(column)        writer.writerow(['Rank' ,'Category', 'Country ','App Name', 'Value', 'Unit' , 'App Release Date', 'Publisher Name', 'Company Name', 'Parent Company Name'])        reader = csv.reader(csvfile)        #table = reader[0]        #Rank, Category, Store, Device, Type, Country, Period,Version, App_ID, App_Name, Value, Unit, Value_Type, AppURL, App_IAP, App_Category, App_Device, Current_Price, App_Release_Date, Publisher_ID, Publisher_Name, CompanyName, ParentCompanyName, AppNameUnified, AppFranchise, UnifiedAppID, AppFranchiseID, CompanyID, ParentCompanyID        for row in reader:            lenth=len(row)            if lenth>10:                writer.writerow([row[column.index("Rank")],row[column.index("Category")],row[column.index("Country")],row[column.index("App Name")],row[column.index("Value")],row[column.index("Unit")],row[column.index("App Release Date")],row[column.index("Publisher Name")],row[column.index("Company Name")],row[column.index("Parent Company Name")]])#processif __name__=="__main__":    csvProcess=BatchProcessCSV("c:\\input\\","e:\\output\\")    csvProcess.doBatchAction()

 

转载地址:http://jeccx.baihongyu.com/

你可能感兴趣的文章
大话数据结构之四(串)
查看>>
加热炉简是新来的整个系统的板
查看>>
Mockito使用注意事项
查看>>
[LeetCode] Palindrome Linked List 回文链表
查看>>
UVA - 825Walking on the Safe Side(dp)
查看>>
android大概是通过logcat拦截Log
查看>>
android HDMI 清晰度 分辨率
查看>>
JQuery发送Put、Delete请求 - 摘自网络
查看>>
Android基于mAppWidget实现手绘地图(九)–如何处理地图对象的touch事件
查看>>
关于codeMirror插件使用的一个坑
查看>>
矩阵管理——本质是职能分工,例如所有部门都执行财务部门制定的财务制度而不会各自为政...
查看>>
评论:人才流失强力折射出现实畸形人才观
查看>>
git服务器gitlab之搭建和使用--灰常好的git服务器【转】
查看>>
Game Loop Tutorial
查看>>
Android开发之旅:应用程序基础及组件(续)
查看>>
jQuery validate API
查看>>
基于机器学习的web异常检测——基于HMM的状态序列建模,将原始数据转化为状态机表示,然后求解概率判断异常与否...
查看>>
分享一种需求评审的方案
查看>>
Java中需要注意的一些案例
查看>>
虚拟运营商10月或大面积放号 哭穷背后仍有赢家
查看>>