Python文件操作经典案例:CSV文件的读与写
【1】认识CSV文件
CSV是Comma Separated Values的缩写,它是逗号分隔符文本格式,常用于数据交换、Excel文件和数据库数据的导入和导出。
鉴于CSV的应用场景,编程人员与它打交道的机会特别多,所以有必要熟悉其特有的属性。
另外,CSV文件还可以通过Excel打开,所以有必要了解CSV文件独特性:
值没有类型,所有值都是字符串;不能指定字体颜色等样式;不能指定单元格的宽高,不能合并单元格。没有多个工作表;不能嵌入图像图表。我们看一个Excel打开CSV文件案例:
再看看用文本编辑器打开同一个CSV文件效果:
【2】CSV文件读取
通过前面的学习,我们已经了解是通过Python的文件对象方法read()或readline()读取文件内容。
针对CSV文件的特色性,Python专门提供了CSV模块,有具体的方法支撑文件内容的读取。
见案例:
# 从 csv 文件读取数据import csvwith open(r"员工薪水表.csv") as a:a_csv = csv.reader(a) #创建 csv 对象,它是一个包含所有数据的列表,每一行为一个元素 headers = next(a_csv) #获得列表对象,包含标题行的信息 print(headers) for row in a_csv: #循环打印各行内容 print(row)
【结论】
CSV文件中每行数据存储在一个列表中;CSV文件中列则是列表的一个元素。【3】CSV文件写入
既然CSV模块提供来读取方法,肯定也存在写入方法。
见案例:
# 往CSV文件写入数据import csvheaders = ["工号","姓名","年龄","地址","月薪"]rows = [("1001","小王",18,"广州市 1 号院","50000"),("1002","李八",19,"佛山市 1 号院","30000")]with open(r"员工薪水表_new.csv","w") as b: b_csv = csv.writer(b) #创建 csv 对象 b_csv.writerow(headers) #写入一行(标题) b_csv.writerows(rows) #写入多行(数据)
【结论】
创建了一个新的CSV文件;文件内容就是程序中指定的写入内容。