【Python】Python读取CSV文件
1. CSV格式csv 文件格式的本质是一种以文本存储的表格数据(使用 Excel 工具即可读写 csv 文件)。csv 文件的每行代表一行数据,每行数据中每个单元格内的数据以逗号隔开。Python提供了 csv 模块来读写 csv 文件。由于 csv 文件的格式本身比较简单(通常第一行是表头,用于说明每列数据的含义,接下来每行代表一行数据),因此使用 csv 模块读取 csv 文件也非常简单:创
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),其内部的指针就移到下一行。
数据如下图:
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种方式。
更多推荐
所有评论(0)