zoukankan      html  css  js  c++  java
  • python列表、字典与csv

    在日常数据分析时最常打交道的是csv文件和list,dict类型。涉及到的主要需求有:

    1. 将一个二重列表[[],[]]写入到csv文件中
    2. 从文本文件中读取返回为列表
    3. 将一字典写入到csv文件中
    4. 从csv文件中读取一个字典
    5. 从csv文件中读取一个计数字典

    实现如下:

    # 功能:将一个二重列表写入到csv文件中
    # 输入:文件名称,数据列表
    def createListCSV(fileName="", dataList=[]):
        with open(fileName, "wb") as csvFile:
            csvWriter = csv.writer(csvFile)
            for data in dataList:
                csvWriter.writerow(data)
            csvFile.close

       》

    # 功能:从文本文件中读取返回为列表的形式
    # 输入:文件名称,分隔符(默认,)
    def readListCSV(fileName="", splitsymbol=","):
        dataList = []
        with open(fileName, "r") as csvFile:
            dataLine = csvFile.readline().strip("
    ")
            while dataLine != "":
                tmpList = dataLine.split(splitsymbol)
                dataList.append(tmpList)
                dataLine = csvFile.readline().strip("
    ")
            csvFile.close()
        return dataList

    # 功能:将一字典写入到csv文件中
    # 输入:文件名称,数据字典
    def createDictCSV(fileName="", dataDict={}):
        with open(fileName, "wb") as csvFile:
            csvWriter = csv.writer(csvFile)
            for k,v in dataDict.iteritems():
                csvWriter.writerow([k,v])
            csvFile.close()

    # 功能:从csv文件中读取一个字典
    # 输入:文件名称,keyIndex,valueIndex
    def readDictCSV(fileName="", keyIndex=0, valueIndex=1):
        dataDict = {}
        with open(fileName, "r") as csvFile:
            dataLine = csvFile.readline().strip("
    ")
            while dataLine != "":
                tmpList = dataLine.split(splitsymbol)
                dataDict[tmpList[keyIndex]] = tmpList[valueIndex]
                dataLine = csvFile.readline().strip("
    ")
            csvFile.close()
        return dataDict

    # 功能:从csv文件中读取一个计数字典
    # 输入:文件名称,keyIndex
    def readDictCSV(fileName="", keyIndex=0):
        dataDict = {}
        with open(fileName, "r") as csvFile:
            dataLine = csvFile.readline().strip("
    ")
            while dataLine != "":
                tmpList = dataLine.split(splitsymbol)
                if dataDict.get(tmpList[keyIndex]) == None:
                    dataDict[tmpList[keyIndex]] = 0
                dataDict[tmpList[keyIndex]] = dataDict.get(tmpList[keyIndex]) + 1
                dataLine = csvFile.readline().strip("
    ")
            csvFile.close()
        return dataDict
  • 相关阅读:
    【转】CentOS8新特性
    【转】Python 库打包分发(setup.py 编写)简易指南
    【转】Python3的venv虚拟环境操作(Linux)
    【转】Qt绘图之QGraphicsScene QGraphicsView QGraphicsItem详解
    【转】Qt 积累
    webapi 参数传递详解
    WPF 字体图标样式
    asp net core mvc 跨域ajax解决方案
    NPOI导出Excel封装
    XML序列化CDATA
  • 原文地址:https://www.cnblogs.com/moye13/p/5291156.html
Copyright © 2011-2022 走看看