前言

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 csvdef 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文件查看】

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

  1. Python3 —— 逗号分隔值CSV

    Python3 -- 逗号分隔值CSV 目录 Python3 -- 逗号分隔值CSV CSV 读写CSV文件 CSV 逗号分隔值( Comma-Separated Value, CSV).与专有的二进 ...

  2. python基础-引用赋值与按值赋值

    一.引用赋值 1.什么是引用赋值? 定义了变量a,并且指向了内存中的一个地址,定义变量b时,将a变量的引用赋给b,两个变量指向了同一个内存地址. 2.引用赋值,如果使用的是可变类型:会被关联修改. a ...

  3. 【Python基础】当变量有值时,为什么会出现UnboundLocalError?

    先来看两段代码. # 代码段一 x = 10def bar():print(x)bar() # 输出 10 # 代码段二 x = 10def foo():print(x)x += 1foo() # 输 ...

  4. Python基础学习----参数和返回值

    # 函数的参数和返回值 # 4种组合方式 # 1.无参无返 # def methodone(): # 2.无参有返 def methodtwo():a=10return a # 3.有参无返 # de ...

  5. Python基础:函数的返回值return

    Python中,用 def 语句创建函数时,可以用 return 语句指定应该返回的值,该返回值可以是任意类型.需要注意的是,return 语句在同一函数中可以出现多次,但只要有一个得到执行,就会直接 ...

  6. Python基础-配置文本编辑器

    我们在第一章中讲述了变量, 这一章中, 我们的所有代码都是在Python终端会话中运行的, 我们以后会编辑大型程序, 有可能包含上百条代码, 这时交互式环境就显得不够强大了, 我们应当使用文本编辑器来 ...

  7. python基础学习笔记——方法返回值

    字符串中(需要有变量接收) 判断是不是阿拉伯数字,返回的是布尔值 1 2 3 4 name = 'alexdasx' new_name = name.isdigit() print(new_name) ...

  8. (更新时间)2021年3月21日 python基础知识(函数的返回值)

    1.函数返回值 <1>"返回值"介绍 所谓"返回值",就是程序中函数完成一件事情后,最后给调用者的结果 <2>带有返回值的函数 想要在函 ...

  9. python可视化添加文本_python Matplotlib基础--如何添加文本和标注

    创建一个优秀的可视化图表的关键在于引导读者,让他们能理解图表所讲述的故事.在一些情况下,这个故事可以通过纯图像的方式表达,不需要额外添加文字,但是在另外一些情况中,图表需要文字的提示和标签才能将故事讲 ...

最新文章

  1. 2019年,我终于知道86版西游记到底好在哪里了
  2. 7000 界面语言不升级_仅限今日!手把手教你C++图形界面开发|附完整代码,海量干货!...
  3. arduino雨滴传感器原理_Arduino酸度计(PH计)
  4. linux环境下的连接器,Linux下连接器ld链接如何排序
  5. mysql读取求和_MySQL从单独的表中获取求和值
  6. java内存模型按照线程隔离性_深入理解Java多线程与并发框(第③篇)——Java内存模型与原子性、可见性、有序性...
  7. Redis多机功能介绍
  8. pythonapp自动化_Android App持续集成性能测试:使用Python实现UI自动化
  9. github 学习笔记【一】
  10. WPF中的动画——(三)时间线(TimeLine)
  11. 联想拯救者y7000p加内存条_内存、硬盘不够用?手把手教你升级联想拯救者Y7000P...
  12. 精准测试系列产品白皮书2020版
  13. 按位与运算()和求余运算(%)的联系
  14. 微信OAUTh2.0来实现第三方授权登录
  15. C语言中if语句例题详解
  16. django配置(setting)之ALLOWED_HOSTS
  17. IPO图(INPUT PROCESS OUTPUT)
  18. GO111MODULE作用
  19. web中常见的HTTP错误码
  20. CSDN文章摘要自定义修改

热门文章

  1. 易语言mysql列表框_详谈易语言的列表框
  2. 易基因|疾病研究:DNA甲基化与转录组分析联合揭示吸烟免疫相关疾病的表观遗传机制
  3. js数组遍历方法总结与对比
  4. redission疑难杂症大全
  5. android_secure写权限,android - android.permission.WRITE_SECURE_SETTINGS,系统应用程序中的权限拒绝 - 堆栈内存溢出...
  6. oracle trace跟踪,oracle数据库跟踪工具 — oracle-tech
  7. X线DR医学图像 --- DR医用滤线栅及摩尔纹详解 (三) 摩尔纹的仿真
  8. C4D致富经典入门到精通(七)
  9. WIN 8 安装PL2303驱动
  10. 用nat123+tomcat 发布网站