操作csv文件
1.概念
Comma Separated Values 逗号分隔值
.csv文件是一种文件格式,特殊的纯文本文档
作用:在不同的程序之间进行数据交互
注意:其中的每个数据以逗号隔开【注意:逗号必须是英文状态的】
在Windows下,csv文件可以通过记事本,excel,notepad++,editplus等打开
2.读取csv文件
#读取 #1.导入模块 import csv #1.方式一:经典三步曲 def readCsv1(path): #1.打开文件 csvFile = open(path,"r") #2.读取 #注意:将csvFile作为参数用 reader = csv.reader(csvFile) print(reader) #可迭代类型 print(type(reader)) #<class '_csv.reader'> #3.将可迭代对象中的数据遍历出来,放到一个列表中 infoList = [] for item in reader: print(item) infoList.append(item) #4.关闭文件 csvFile.close() return infoList #方式二:简写方式 def readCsv2(path): #列表 infoList = [] #好处:不用手动调用close with open(path,"r") as f: reader = csv.reader(f) #遍历 for item in reader: infoList.append(item) return infoList if __name__ == "__main__": path = "text1.csv" list1 = readCsv2(path) print(list1)
3.写入csv文件
#写数据 import csv #方式一:通过列表写数据 def writeCsv1(path): infoList = [['username', 'password', 'age', 'hobby'], ['zhangsan', 'abc123', '18', 'dance'], ['lisi', 'aabbb', '30', 'sing']] #1.打开文件 csvFile = open(path,"w",newline="")#默认写入数据的时候每条数据的中间会空一行 #2.获取可迭代对象 writer = csv.writer(csvFile) #3.获取需要写入内容的长度 size = len(infoList) #4.循环写入数据 for item in range(size): #按行写入 writer.writerow(infoList[item]) #5.关闭文件 csvFile.close() #方式二:通过字典写数据 def writeCsv2(path): dict = {"张三":1243,"李四":4367,"刘能":4365} csvFile = open(path,"w",newline="") writer = csv.writer(csvFile) for key in dict: #将字典中的键值对转换为列表 list = [key,dict[key]] writer.writerow(list) csvFile.close() #方式三:简写方式 def writeCsv3(path): infoList = [['username', 'password', 'age', 'hobby'], ['zhangsan', 'abc123', '18', 'dance'], ['lisi', 'aabbb', '30', 'sing']] with open(path,"w",newline="") as f: writer = csv.writer(f) for item in infoList: writer.writerow(item) if __name__ == "__main__": path = "text4.csv" writeCsv3(path)