1. CSV格式

csv 文件格式的本质是一种以文本存储的表格数据(使用 Excel 工具即可读写 csv 文件)。csv 文件的每行代表一行数据,每行数据中每个单元格内的数据以逗号隔开。

Python 提供了 csv 模块来读写 csv 文件。由于 csv 文件的格式本身比较简单(通常第一行是表头,用于说明每列数据的含义,接下来每行代表一行数据),因此使用 csv 模块读取 csv 文件也非常简单:

创建 csv 模块的读取器。

循环调用 csv 读取器的 next() 方法逐行读取 csv 文件内容即可。

next() 方法返回一个 list 列表代表一行数据,list 列表的每个元素代表一个单元格数据。

2.实例代码

读取前两行 

# readCSV.py
# python 3.8

import csv

file = 'D:\\1.csv'

with open(file, encoding="UTF8") as f:    
	reader = csv.reader(f)        # 创建 读取器
	header_row = next(reader)     # 获取表的第一行(一般是列名)
	print(header_row)             # 打印

	first_row = next(reader)      # 获取标的第二行
	print(first_row)

读取所有行:

# readCSV.py
# python 3.8

import csv

file = 'D:\\1.csv'

with open(file, encoding="UTF8") as f:
	reader = csv.reader(f)        # 创建 读取器
	header_row = next(reader)     # 获取表的第一行(一般是列名)
	print(header_row)             # 打印

    for row in reader:            # 循环得到后面的所有数据
        print(row)

其实,这个 reader 是个迭代器,其自身包含了一个指向当前数据位置的指针(非C语言指针,而是有点像生活中的手表表盘指针)。你对它调用一次 next(reader),其内部的指针就移到下一行。

数据如下图:

Excel打开CSV
用Excel打开CSV文件
用记事本打开CSV文件
用记事本打开CSV文件标题
代码输出结果
输出标题和第一行数据

3. 写数据的简单代码

import csv

header = ['ID','姓名']

data = [['123','张三'], ['124','李四']]

outputfile = "outfile.csv"

# 注意要加 newline='' 参数,否则会出现空行
csvFile = open(outputfile, "w", encoding="UTF8", newline='')   # 创建csv文件

writer = csv.writer(csvFile)             # 创建 写入器

writer.writerow(header)                  # 写入首行(一般都是标题)
                                               
writer.writerows(data)                    # 写入多行

csvFile.close()

4. 更精细的操作

1. 更复杂的读写控制(如筛选行和列),请使用Python第三方库:pandas。详细参考此文:用python读写和处理csv文件

2. 使用字典方式获取数据,可使用 csv.DictReader(file) ,具体参考:用Python读取CSV文件的5种方式

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐