Python基础-48-文本处理(逗号分隔值CSV)

2023-11-12

前言

python自带模块csv可以将数据以csv格式输出到文件,也可以将csv数据读回

 

列表、元组数据写入和读取

【代码部分】

# coding:utf-8
import csv

# data也可以为列表
data = (
    ["1", "suner001", "b123456"],
    ["2", "suner002", "b123456"],
    ["3", "suner003", "b123456"],
    ["4", "suner004", "b123456"]
)

# 1)打开文件时,不加newline="",会默认写入一行后隔一行再写入
# 2)csv.writer()需要一个打开的文件对象,返回一个writer对象
# 3)writer对象提供了writerow()方法,用来在打开的文件中逐行写入逗号分隔的数据
f = open("user_data.csv","w",encoding="utf-8",newline="")
writer = csv.writer(f)
for d in data:
    writer.writerow(d)
f.close()

# 4)csv.reader(f)需要一个打开的文件对象,返回一个reader可迭代对象对象
# 5)直接遍历取出数据即可
f = open("user_data.csv","r",encoding="utf-8")
reader = csv.reader(f)
for no, username, password in reader:
    print("编号:%s,账号:%s,密码:%s" % (no, username, password))
f.close()

【控制台输出结果】

 

【打开user_data.csv文件查看】

 

字典数据写入和读取

【代码部分】

# coding:utf-8
import csv

# data为字典的数据列表
data = [
    {"编号":1, "账号":"suner001", "密码":"b123456"},
    {"编号":2, "账号":"suner002", "密码":"b123456"},
    {"编号":3, "账号":"suner003", "密码":"b123456"},
    {"编号":4, "账号":"suner004", "密码":"b123456"}
]

# 1)csv.DictWriter(f, key_list),需要一个打开的文件对象,和写入的头部(即第一行的key值),返回一个writer对象
# 2)dict_writer.writeheader()写入第一行的头数据(key)
# 3)循环字典列表数据,依次写入
f = open("user_data.csv", "w", encoding="utf-8", newline="")
key_list = [k for k in data[0].keys()]  # 取出key的列表
# print(key_list)  # ['密码', '编号', '账号']
dict_writer = csv.DictWriter(f, key_list)
dict_writer.writeheader()
for d in data:
    dict_writer.writerow(d)
f.close()

f = open("user_data.csv","r",encoding="utf-8")
dict_reader = csv.DictReader(f)
for row in dict_reader:
    print(row)

【控制台输出结果】

【打开user_data.csv文件查看】

 

优化代码

【代码部分】

# coding:utf-8
import csv

def list_data_write_csv(list_data,file_name):
    """list数据写入csv"""
    with open(file_name, "w", encoding="utf-8", newline="") as f:
        writer = csv.writer(f)
        for d in list_data:
            writer.writerow(d)
        return "数据全部写入成功"


def list_data_read_csv(file_name):
    """从csv中取出list数据"""
    with open(file_name, "r", encoding="utf-8") as f:
        reader = csv.reader(f)
        for no, username, password in reader:
            print ("编号:%s,账号:%s,密码:%s" % (no, username, password))
        return "数据全部读取完毕"

def dict_data_write_csv(dict_data,file_name):
    """dict数据写入csv"""
    with open(file_name, "w", encoding="utf-8", newline="") as f:
        key_list = [k for k in dict_data[0]]  # 取出key的列表
        dict_writer = csv.DictWriter(f, key_list)
        dict_writer.writeheader()
        for d in dict_data:
            dict_writer.writerow(d)
        return "数据全部写入成功"

def dict_data_read_csv(file_name):
    """从csv中取出dict数据"""
    with open(file_name, "r", encoding="utf-8") as f:
        dict_reader = csv.DictReader(f)
        for row in dict_reader:
            print(row)
        return "数据全部读取完毕"


list_data= [[1, "wang01", "123"], [2, "wang02", "123"], [3, "wang03", "123"]]
dict_data = [{"编号":1, "账号":"wang001", "密码":"123"}, {"编号":2, "账号":"wang002", "密码":"123"}]

print(list_data_write_csv(list_data,"user_info.csv"))
print(list_data_read_csv("user_info.csv"))

print(dict_data_write_csv(dict_data,"user_info01.csv"))
print(dict_data_read_csv("user_info01.csv"))

【控制台输出结果】

【打开csv文件查看】 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python基础-48-文本处理(逗号分隔值CSV) 的相关文章

  • numpy回忆

    numpy对矩阵操作后 输出的形状与想象的不一样 记个笔记代码 点乘的padding操作容易出错 开发时间 4 24 import numpy as np Data np array 1 2 255 255 0 255 255 0 0 3
  • Python基础——函数的基本使用

    文章目录 一 定义 二 属性 三 操作 1 函数的参数 2 函数返回值 3 函数多个返回值 4 多个return语句 5 函数调用函数 6 函数的联系及注释 7 局部变量和全局变量 8 数据的传递 9 lambda表达式 一 定义 1 语法
  • 【python基础】猜数字游戏

    前言 相信很多人都玩过猜数字游戏 游戏规则也十分简单 还记得小时候我经常和朋友一起玩 我们在桌上摆放一些1 100以内的数字卡片 一个人随机抽取一张卡片 这里不许偷看卡片内容 首先这个人随机猜一个数字 然后其他人会告诉你猜大了还是猜小了 先
  • 如何在Anaconda安装Pygame

    开始之前 先来安装Pygame 可使用pip模块来帮助下载安装python包 要安装Pygame 需在终端提示符下执行如下命令 python m pip install user pygame 对于下载了anaconda用户 可按以下操作
  • 浅拷贝和深拷贝: copy模块的copy()和deepcopy()函数(*^▽^*)

    我们在平时处理列表和字典的时候 有时候希望创建一个列表或者字典的副本拿出来使用 但是同时我们也不希望列表 字典 和其列表 字典 副本还保留着某种联系的时候 比如说我们在修改列表的时候副本也跟着同步被修改了 这是我们最不想看到的情况 这种情况
  • 【Python 1-10】Python手把手教程之——一篇讲透if语句以及if语句的特殊用法

    作者 弗拉德 来源 弗拉德 公众号 fulade me if 简单示例 假设你有一个汽车列表 并想将其中每辆汽车的名称打印出来 对于大多数汽车 都应以首字母大写的方式打印其名称 但对于汽车名 bmw 应以全大写的方式打印 下面的代码遍历一个
  • 自学笔记-Python基础09--第三方库的概念及操作

    库 具有相关功能模块的集合 python的一大特色就是拥有强大的库 库可以分为三种 1 标准库 python自带的 无需安装直接使用 2 第三方库 由他人提供的 使用时需要先安装 3 自定义库 自己写的模块 自己用 标准库 想看python
  • python---迭代器, for循环底层原理

    目录 何为迭代 可迭代对象 迭代器对象 迭代器的优缺点 优点 缺点 for循环底层原理 迭代取值与索引取值对比 何为迭代 迭代器即用来迭代取值的工具 而迭代是重复反馈过程的活动 其目的通常是为了逼近所需的目标或结果 每一次对过程的重复称为一
  • python爬虫对网页进行数据抓取

    1 拿到网页源代码 1 1 先看网址 和请求方式 1 2导入requests模块 1 3 发现爬不出来 是因为豆瓣做了伪装 1 3需要更换头部 1 4需要设置utf 8 要不然会乱码2 提取想要的数据 2 1 加载re模块 并且进行预加载
  • Python——os.mkdir()在指定路径下创建文件夹 + 路径的连接理解

    引子 我在用路径连接函数 os path join 时发现 其连接的各级目录必须首先存在 才可以连接 也即是说连接的各文件夹必须首先存在 因为个各层级的目录以文件夹的形式表现出来 基于此 我开始研究如何先在指定路径下创建文件夹 1 在指定路
  • 树结构,二叉树,hash树

    目录 1 树的概念 2 二叉树基本操作 3 hash树 1 树的概念 1 树的特性 1 一棵树中的任意两个结点有且仅有唯一的一条路径连通 2 一棵树如果有n个结点 则它一定有n 1条边 3 在一棵树中加一条边将会构成一个回路 2 二叉树 1
  • python类的属性和实例的属性有什么区别

    在 Python 中 类属性和实例属性是两种不同类型的属性 它们在用途和作用域上有所不同 下面是关于它们的区别的详细解释 定义位置 类属性 定义在类的主体中 但在任何类方法之外 实例属性 通常在 init 方法或其他类方法中使用 self
  • 职场上会用Python的人到底有多牛?

    这个人工智能崛起的时代 似乎人人都在聊 Python 从硬件的芯片层面 物联网 一路杀到云端 大数据 人工智能这些炙手可热的领域 无论什么领域 只要它需要编程 都会有Python的身影 下面就和大家一起来聊聊 Python 的好 到底它牛在
  • Python基础07

    Python基础07 学习07 嵌套函数 内部函数 嵌套函数 在函数内部定义的函数 上面程序中 f2 就是定义在f1 函数内部的函数 f2 的定义和调用都在f1 函数内部 嵌套函数的使用情况 1 封装 数据隐藏 外部无法访问 嵌套函数 2
  • Python-字典:键值对的魔法世界

    深入理解Python字典 键值对的魔法世界 在Python中 字典 Dictionary 是一种强大且常用的数据结构 它允许我们存储和组织键值对 Key Value 数据 与列表和元组不同 字典中的数据是无序的 但每个数据都与一个唯一的键相
  • Python-集合

    探索Python集合的奇妙世界 在Python编程中 集合 Set 是一种强大且有用的数据结构 它用于存储多个不重复的元素 集合的独特之处在于它的元素是无序的 并且每个元素都是唯一的 这使得集合在处理去重和进行快速成员检查时非常有效 创建集
  • python解释器多版本安装

    文章目录 1 python解释器的安装 2 配置环境变量 3 在cmd窗口使用python多版本 1 python解释器的安装 要想让计算机能够识别并运行高级语言 要对应类型的翻译官 python这种编程语言的翻译官就是python解释器
  • python--socket(套接字/插口)

    socket是什么 是进程间通信的一种方式 它与其他进程间通信的一个主要不同是 它能实现不同主机之间的进程通信 我们网络上各种各样的服务大多都是基于socket来完成通信的 例如我们浏览网页 qq聊天 收发emil Socket是应用层与T
  • Python程序异常处理

    一 什么是异常 异常就是程序运行时发生错误的信号 在程序由于某些原因出现错误的时候 若程序没有处理它 则会抛出异常 程序也的运行也会随之终止 程序异常带来的问题 1 程序终止 无法运行下去 2 如果程序是面向客户 那么会使客户的体验感很差
  • 4.函数、模块与包

    文章目录 一 函数 二 模块与包 引用 一 函数 Python 使用 def 关键字来声明函数 格式如下所示 def 函数名 参数 函数体 return 返回值 如果要定义一个无任何功能的空函数 函数体只写 pass 即可 def 函数名

随机推荐