CSV
导入方法库:
import csv
# 打开读、写文档
with open(in_file_path, 'r', newline="") as in_file:
with open(out_file_path, 'w', newline="") as out_file:
# 创建读取迭代器,逐行读取数据
filereader = csv.reader(in_file, delimiter=",")
filewriter = csv.writer(out_file, delimiter=",")
用记事本打开csv文件,看到的格式是下面这样的:
object,weight,type
apple,3,fruit
dog,23,animal
apple,3,fruit
dog,23,animal
apple,3,fruit
dog,23,animal
apple,3,fruit
dog,23,animal
每条数据各个属性之间用", "隔开。
filereader = csv.reader(in_file, delimiter=",")
上句中的delimiter
参数就是把读到的数据行中的逗号删去,转化为python的列表(list)格式:
["apple", "3", "fruit"]
列表就类似于Java数组,区别在于列表中元素的类型可以不一致。
a = ["apple", "3", "fruit"]
print(a[0]) # 结果为apple
print(a[2]) # 结果为fruit
# 列表追加新元素
a.append("plant")
# 结果:
# ["apple", "3", "fruit", "plant"]
读csv文件
开始先用上面的代码获取文件的第一行:
header = next(filereader)
["object", "weight", "type"]
然后用循环逐行读取:
for row_list in filereader:
print(row_list)
打印的结果如下:
["apple", "3", "fruit"]
["dog", "23", "animal"]
["apple", "3", "fruit"]
["dog", "23", "animal"]
["apple", "3", "fruit"]
["dog", "23", "animal"]
["apple", "3", "fruit"]
["dog", "23", "animal"]
写csv文件
写之前先将需要写入的数据行写成列表形式,然后写入:
row_list = ["zyz", "22", "cool_man"]
filewriter.writerow(row_list)
完整示例:
import csv
# 读
with open(in_file_path, 'r', newline="") as in_file:
# 创建迭代器
filereader = csv.reader(in_file, delimiter=",")
for row_list in filereader:
print(row_list)
# 写
with open(out_file_path, 'w', newline="") as out_file:
# 创建迭代器
filewriter = csv.writer(out_file, delimiter=",")
row_lists = [["zyz", "22", "cool_man"],
["zyz", "22", "cool_man"],
["zyz", "22", "cool_man"],
["zyz", "22", "cool_man"]]
for row_list in row_lists:
filewriter.writerow(row_list)