写入csv文件

一:写入字典

二:写入普通数据

读取:

第一种:普通读取

第二种:读取csv并用namedtuple映射列名,类似于使用类的实例

第三种:字典形式

import csv
from collections import namedtuple def csv_write_dict():
""" 写入字典 """
header = ["_id", "column1", "column2", "column3"]
rows = [
{"_id": 1, "column1": "a1", "column2": "b1", "column3": "c1"},
dict(_id=2, column1="a2", column2="b2", column3="c2")
]
with open("data.csv", "w", encoding="utf8", newline="") as f:
writer = csv.DictWriter(f, header)
writer.writeheader()
writer.writerows(rows) def csv_write():
""" 写入csv文件 """
header = ["id", "column1", "column2", "column3"]
rows = [
(1, "a1", "b1", "c1"),
(2, "a2", "b2", "c2")
]
with open('data.csv', "w", encoding='utf8', newline='') as f:
write = csv.writer(f)
write.writerow(header) # 写一行,第一行
write.writerows(rows) # 写多行,内容 def csv_read():
""" 普通读取csv """
with open('data.csv', encoding='utf8') as f:
reader = csv.reader(f) # 加载csv
headers = next(reader) # 第一行,即表头
print(headers)
for row in reader:
print(row) # 取出来是list
print(f'id: {row[0]}, column1: {row[1]}, column2: {row[2]}, column3: {row[3]}') def csv_read_by_namedtuple():
""" 读取csv并用namedtuple映射列名 """
with open('data.csv', encoding='utf8') as f:
reader = csv.reader(f) # 加载csv
headers = next(reader) # 第一行,即表头
Row = namedtuple('Row', headers)
for r in reader:
row = Row(*r)
print(row)
print(f'{row.id}--{row.column1}--{row.column2}--{row.column3}') def csv_read_by_dict():
""" 读取csv为字典形式 """
with open('data.csv', encoding='utf8') as f:
reader = csv.DictReader(f) # 以字典形式加载csv
for row in reader:
print(row)
print(f'id:{row["id"]}--column1:{row.get("column1")}--'
f'column12:{row.get("column2", "未获取到值")}--'
f'column3:{row.get("column3")}') if __name__ == '__main__':
csv_write()
csv_write_dict()
csv_read()
csv_read_by_namedtuple()
csv_read_by_dict()

测开之路八十五:python处理csv文件的更多相关文章

  1. 测开之路八十六:python操作sqlite

    创建sqlite数据库,并创建表和数据 python自带sqlite3库可以创建数据库文件 导入库:import sqlite3 创建游标,指定数据库名字:con = sqlite3.connect( ...

  2. 测开之路七十五:linux常用命令

    常用命令: ls:列出文件或目录 pwd:展示当前所在的目录 mkdir:创建目录 mkdir -p :创建连续的目录 cd:切换目录 vi:编辑内容,点i开始编辑,输入::wq保存 cat 显示文件 ...

  3. 测开之路四十五:Django之最小程序

    安装Django库 Django最小程序 import sysfrom django.conf.urls import urlfrom django.conf import settingsfrom ...

  4. 测开之路八十九:HTML之图片处理

    <!--width.height设置图片尺寸 alt:当图片不能展示时,显示的内容 title:鼠标放上去时展示的内容--> <img src="../imges/img0 ...

  5. 测开之路八十八:HTML之文本格式化

    准备一段文本内容 强调显示: <!-- b标签,加粗显示 --> <p><b>这是b标签的效果</b></p> <!-- strong ...

  6. 测开之路八十二:匿名函数:lambda表达式

    # 匿名函数:lambda表达式# lambda 参数: 逻辑f = lambda name: print(name)f('tom') f2 = lambda x, y: x + yprint(f2( ...

  7. 测开之路六十五:UI测试平台之js

    //添加网址的函数,生成一个输入网址的标签,并且把标签append到id为cases下function browser() { var html = '\ <div class="ro ...

  8. 测开之路三十五:css引入

    CSS是一种定义样式结构,如字体.颜色.位置等的语言,被用于描述网页上的信息格式化和现实的方式.CSS样式可以直接存储于HTML网页或者单独的样式单文件.无论哪一种方式,样式单包含将样式应用到指定类型 ...

  9. 测开之路七十九:python 文件处理和对象的写入读取

    """处理文件:open(文件名, 模式,编码) 'r' 打开阅读(默认)'w' 打开写入,首先截断文件'x' 打开独占创建,如果文件已经存在则失败'a' 打开写入,追加 ...

随机推荐

  1. Python3数据分析与挖掘建模实战 学习 教程

    Python3数据分析与挖掘建模实战 学习 教程 Python数据分析简介Python入门 运行:cmd下"python hello.py" 基本命令: 第三方库安装Windows ...

  2. [2019杭电多校第六场][hdu6635]Nonsense Time

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6635 题意是说一开始所有数都冻结,第i秒会解冻第ki个数,求每秒状态下的最长上上升子序列长度. 这种题 ...

  3. ex2、逻辑回归

    介绍: 在本练习中,您将实现逻辑回归,并将其应用于两个不同的数据集.在开始编程练习之前,我们强烈要求建议观看视频讲座并完成相关主题的问题.要开始练习,您需要下载起始代码并将其内容解压缩到要完成练习的目 ...

  4. 初学css display

    display:网上查到的资料说是:属性规定元素应该生成的框的类型.例如:网页上的导航栏,使用ul->li那么需要让其排列在一行上可以使用设置li:{float:left:},也可以使用disp ...

  5. ES6精解:变量的解构赋值

    1.数组的解构赋值 我们知道以前我们给一个变量赋值要这样如下: let a = 1; let b = 2; let c = 3; 但是ES6出来之后,我们可以这样: let [a, b, c] = [ ...

  6. Codeforces - 1198D - Rectangle Painting 1 - dp

    https://codeforces.com/contest/1198/problem/D 原来是dp的思路,而且是每次切成两半向下递归.好像在哪里见过类似的,貌似是紫书的样子. 再想想好像就很显然的 ...

  7. SCUT - 271 - CC 非诚勿扰 - FFT

    https://scut.online/p/271 第一次遇到没这么裸的,其实感觉到是卷积但是不知道怎么化.看来以后要多注意下标. #include <bits/stdc++.h> usi ...

  8. 利用vsftpd在Linux构建安全的FTP服务

    最近在机房搭建Linux环境,需要用到了FTP服务,查看了许多的资料,在这里做一下笔记 一.安装 方法一,使用yum命令安装,需要能够连接外网 # yum install vsftpd 方法二,使用安 ...

  9. 【学习总结】java数据结构和算法-第三章-稀疏数组和队列

    相关链接 [学习总结]尚硅谷2019java数据结构和算法 github:javaDSA 目录 稀疏数组 队列 稀疏数组 稀疏数组介绍 图示 应用实例 代码实现 SparseArray.java:与二 ...

  10. netcore中使用session