为什么要学csv这个库呢?
- 项目中常使用csv造一些数据。
- 用csv做用例参数还是比较不错的,嵌套到yaml中,替换yaml中对应key的value值。
- python的csv文件打开不是表格样式,看着也舒服。
- 可以dict的方式读取,便于维护。
1、读取csv文件
我放在csv基本操作读取.py这个模块中了。
data/csv_data.csv文件内容如下:
Name,Age,Sex
Mary,18,Female
Tony,19,Male
Jack,20,Male
wangjie,30,lte
import csv
def readCsv():
with open(r"data/csv_data.csv", "r", encoding='utf-8') as fp:
reader = csv.reader(fp)
for row in reader:
print(row)
#dicts为True时,打印出dict字典,为false时打印原始的值
def dictReadCsv(dicts=1):
with open(r"data/csv_data.csv", "r", encoding='utf-8') as fp:
reader = csv.DictReader(fp)
if dicts==1:
for row in reader:
print(dict(row))
elif dicts==0:
for row in reader:
print(row)
else:
#默认展示成列表
for row in reader.reader:
print(row)
if __name__ == '__main__':
dictReadCsv(dicts=2)
2、写入csv文件
import csv
data = [
('Name', 'Age', 'Sex'),
('Jane', '12', 'Female'),
('jack', '18', 'male'),
('roles', '21', 'Female'),
]
def csvWrite():
with open(r'data/csv_data写入.csv', "w", newline='') as fp:
writer = csv.writer(fp)
writer.writerows(data)
def csvDictWrite():
data = [
{'Name': 'Mark', 'Age': 17, 'Sex': 'Male'},
{'Name': 'Lisa', 'Age': 16, 'Sex': 'Female'},
{'Name': 'Jacky', 'Age': 20, 'Sex': 'Male'},
]
with open('data/csv_data写入.csv', 'w', newline='') as f:
#文件的表头, newline是定义换行的符号
fieldnames = ['Name', 'Age', 'Sex']
writer = csv.DictWriter(f, fieldnames=fieldnames)
writer.writeheader()
writer.writerows(data)
if __name__ == '__main__':
csvWrite()
参考文章入口->>
https://blog.csdn.net/SweetHeartHuaZai/article/details/126609275