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("\n")
        while dataLine != "":
            tmpList = dataLine.split(splitsymbol)
            dataList.append(tmpList)
            dataLine = csvFile.readline().strip("\n")
        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("\n")
        while dataLine != "":
            tmpList = dataLine.split(splitsymbol)
            dataDict[tmpList[keyIndex]] = tmpList[valueIndex]
            dataLine = csvFile.readline().strip("\n")
        csvFile.close()
    return dataDict

# 功能:從csv文件中讀取一個計數字典
# 輸入:文件名稱,keyIndex
def readDictCSV(fileName="", keyIndex=0):
    dataDict = {}
    with open(fileName, "r") as csvFile:
        dataLine = csvFile.readline().strip("\n")
        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("\n")
        csvFile.close()
    return dataDict

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM