Python编程之获取多文件csv数据

标签: Python CSV 大量csv数据提取
3人阅读 评论(0) 收藏 举报
分类:

该程序主要是获取csv文件中的DataValue的数据。它可以获取一个目录下所有的csv文件中的数据。但是该程序在获取数据时,需要哦用户提供csv文件所在的目录,以及所有csv文件的名称的链表文件(listfile.txt),程序中链表文件默认在桌面上的.../CSV/NewData目录下。使用该程序请参照博客(Python编程之获取目录下csv文件名 )中的代码去使用。

# -*- coding: utf-8 -*-
#!usr\bin\python

import os
import csv
import winreg
import time
import shutil#可以直接删除非空文件夹模块shutil.rmtree(mkpath)  # 可以直接删除非空文件夹

def get_desktop():
    key = winreg.OpenKey(winreg.HKEY_CURRENT_USER,r'Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders')#利用系统的链表
    return winreg.QueryValueEx(key, "Desktop")[0] #返回的是Unicode类型数据

def mkdir(root):#创建CSV文件夹
    Desktop_path = str(root)
    mkpath = Desktop_path + '\CSV\NewData\DataValue'
    if os.path.exists(mkpath) is False:  # 判断一个目录是否存在
        os.mkdir(mkpath + '\\')  # 创建目录,用于存放处理后的数据
    else:
        shutil.rmtree(mkpath)  # 可以直接删除非空文件夹
        os.mkdir(mkpath + '\\')  # 创建目录,用于存放处理后的数据
    return mkpath

def listfilehandle(listfile):
    Rowdata = []
    rfile = open(listfile, 'r')
    rfilelist = rfile.readlines()#直接读取文件中每一行数据转换成List类型
    ListFileLen = len(rfilelist)  # 链表文件中文件名的个数
    print ListFileLen
    for filename in rfilelist:
        Rowdata.append(filename.strip('\n'))
    return Rowdata

'''******************CSV文件名打开路径列表*****************'''
def fnlistpath(filename,root):
    fileopenpath = root + '\\' + filename
    return fileopenpath


if __name__=='__main__':
    fileroot = raw_input("FileRoot:")
    if fileroot is '':
        fileroot = 'C:\Desktop\CSV\originalCSVfile'

    FilePathList = []
    listfile = []
    data1 = []
    #批量文件
    listfilesroot = 'C:\Desktop\CSV\NewData\listfile.txt'
    Rowdata = listfilehandle(listfilesroot)
    print Rowdata
    for index in Rowdata:
        filepath = fnlistpath(index,fileroot)
        FilePathList.append(filepath)
    print FilePathList

    newdir = mkdir(get_desktop())
    print newdir

    for item in range(len(Rowdata)):
        reader = csv.reader(file(FilePathList[item]))
        # 打开文件,追加a
        outfile = open(newdir+'\\'+Rowdata[item], 'wb')
        # 设定写入模式
        csv_write = csv.writer(outfile, dialect='excel')
        '''------------------提取csv文件中的某列数据-----------------------'''
        #将CSV文件中数据全部存放到listfile列表中去
        for rows in reader:
            listfile.append(rows)

        for i in range(len(listfile)):
            strbuff = (listfile[i])[0]
            if strbuff == 'DataValue':
                data1.append(listfile[i])
        del listfile[:]
        #print data1
        for i in range(len(data1)):
            csv_write.writerow(data1[i])
        del data1[:]
        outfile.close()


查看评论

Linux编程之GCC编译工具实战

本课程使得学员能够学会在linux中如何编译C/C++程序,使用GCC工具如何编译静态库,动态库,如何配置运行动态库。
  • 2016年12月26日 12:27

编程之禅 浅谈封装

作为一个整天与代码打交道的人,你真的会coding吗? 今天依旧来反思一下自身。伊始大一的时候,刚接触到了C语言,一门神奇的语言。老师就教导我们要多敲例子,照着书本敲就可以了。可能当时并没有真正的理解...
  • Marksinoberg
  • Marksinoberg
  • 2016-06-17 10:00:27
  • 6932

python编程之PyS60编程课程

  • 2010年02月24日 14:06
  • 1023KB
  • 下载

【大牛之路】大牛指导,报酬丰厚的开源项目---“谷歌编程之夏”

一个参与开源项目,开源社区的绝好机会,2018年谷歌编程之夏已经开始了? 什么,你想参与开源又不知道从何下手,这是一个好机会。 有社区大牛引导,为开源项目贡献代码,获取丰厚报酬,这样的好机会千万不要错...
  • XiyouLinux_Kangyijie
  • XiyouLinux_Kangyijie
  • 2018-02-20 20:38:19
  • 469

使用python获取csv文本的某行或某列数据

站长用Python写了一个可以提取csv任一列的代码,欢迎使用。Github链接 csv是Comma-Separated Values的缩写,是用文本文件形式储存的表格数据,比如如下的表格: ...
  • Allyli0022
  • Allyli0022
  • 2018-01-22 09:51:04
  • 540

Python编程之基本方法

程序的基本编写方法 IPO模式 - I:Input 输入,程序的输入 - P:Process 处理,程序的主要逻辑 - O: Output 输出,程序的输出...
  • qq_35417815
  • qq_35417815
  • 2017-08-16 15:51:05
  • 98

编程之魂:与27位编程语言创始人对话

深入PHP : 面向对象、模式与实践 (第2版)   软件架构师应该知道的97件事 编程之魂:与27位编程语言创始人对话   2010-04-22 09:35:55|  分...
  • junecauzhang
  • junecauzhang
  • 2013-07-21 14:02:36
  • 730

Python抓取CSV文件中数据

最近在用Caffe_Windows做CNN分类识别。先前数据采集这块不是由我负责的,今天突然也想把这块跑通,这样后面就可以玩一些自己的想要的识别了。由于CNN training Datasets特别重...
  • u013096864
  • u013096864
  • 2017-01-12 17:27:12
  • 1007

Python的分支和循环结构的练习

# 输入三个数,按从小到大的顺序输出a = int(input('a = '))b = int(input('b = '))c = int(input('c = '))if a > b:...
  • weixin_40985545
  • weixin_40985545
  • 2018-03-01 22:50:02
  • 18

编程之禅(程序员的哲学 )

  • 2011年07月18日 13:25
  • 349KB
  • 下载
    个人资料
    等级:
    访问量: 95
    积分: 63
    排名: 162万+
    文章分类
    文章存档