概念:CSV是逗号分隔值或者字符分割值,其文件以纯文本形式存储表格数据。CSV文件可以用文本文件或者转换成EXCEL(直接用EXCEL也可以,但是可能会有一些问题)打开。因此更适合通过CSV文件进行程序之间转移表格数据。

应用场景:需要进行取数分析(将数据库数据拉取下来给产品)、保存爬虫数据时,借助CSV文件更便利一些,同时也可以用该文件记录脚本的操作日志。

下面演示如何通过Python进行CSV文件的读写操作。

import csv

with open('test.csv', 'w') as f:

writer = csv.writer(f)

writer.writerow(['id', 'name', 'phone'])

writer.writerow(['01', 'zhangsan', '13600000001'])

writer.writerow(['02', 'lisi', '13600000002'])

writer.writerow(['03', 'wangwu', '13600000003'])

用记事本打开可以看到如下内容,默认每行数据之间是通过逗号隔开的(可以再理解一下这个Comma-Separated Values)

实例1-1.png

用EXCEL打开的话,数据长这样

实例1-2.png

emmmm,让我们把每行下面的空格去掉,加上newline参数

import csv

with open('test.csv', 'w', newline='') as f:

writer = csv.writer(f)

writer.writerow(['id', 'name', 'phone'])

writer.writerow(['01', 'zhangsan', '13600000001'])

writer.writerow(['02', 'lisi', '13600000002'])

writer.writerow(['03', 'wangwu', '13600000003'])

看,空格没有了!

实例2-1.png

如果想用其它符号代替数据间的逗号,设置delimiter参数

import csv

with open('test.csv', 'w') as f:

writer = csv.writer(f, delimiter = '-')

writer.writerow(['id', 'name', 'phone'])

writer.writerow(['01', 'zhangsan', '13600000001'])

writer.writerow(['02', 'lisi', '13600000002'])

writer.writerow(['03', 'wangwu', '13600000003'])

实例3-1.png

还有一种实现方式,先写入表头,再用writerows插入数据

import csv

with open('test.csv', 'w') as f:

writer = csv.writer(f)

writer.writerow(['id', 'name', 'phone'])

writer.writerows([['01', 'zhangsan', '13600000004'],['02', 'lisi', '13600000005'],['03', 'wangwu', '13600000006']])

实例4-1.png

或者将表头抽离出来,通过字典的方式写入

with open('test.csv', 'w') as f:

header = ['id', 'name', 'phone']

writer = csv.DictWriter(f, fieldnames=header)

writer.writeheader()

writer.writerow({'id': '01', 'name': 'zhangsan', 'phone': '13600000007'})

writer.writerow({'id': '02', 'name': 'lisi', 'phone': '13600000008'})

writer.writerow({'id': '03', 'name': 'wangwu', 'phone': '13600000009'})

实例5-1.png

还可以用for循环将数据依次写入

import csv

data = [

("zhangsan",'13600000001'),

("lisi",'13600000002'),

("wangwu",'13600000003')

]

with open('test.csv','w') as f:

writer = csv.writer(f)

for i in data:

writer.writerow(i)

如果需要写入中文数据,为了避免编码错误,文件操作时加上编码格式

import csv

with open('test.csv', 'w', encoding='utf-8') as f:

writer = csv.writer(f)

writer.writerow(['id', 'name', 'phone'])

writer.writerow(['01', '张三', '13600000001'])

writer.writerow(['02', '李四', '13600000002'])

writer.writerow(['03', '王五', '13600000003'])

文件读取操作

import csv

with open('test.csv','r',encoding = 'utf-8') as f:

reader = csv.reader(f)

for row in reader:

print(row)

实例6-1.png

pythoncsv文件的操作_python操作CSV文件相关推荐

  1. python中写入csv文件的方法_Python写入CSV文件的方法

    python笔记5-python2写csv文件中文乱码问题 前言 python2最大的坑在于中文编码问题,遇到中文报错首先加u,再各种encode.decode. 当list.tuple.dict里面 ...

  2. python为csv文件添加表头_python读csv文件时指定行为表头或无表头的方法

    python读csv文件时指定行为表头或无表头的方法 pd.read_csv()方法中header参数,默认为0,标签为0(即第1行)的行为表头.若设置为-1,则无表头.示例如下: (1)不设置hea ...

  3. python读取csv文件路径设置_python读取csv文件

    1 importcsv2 tsvfile = open('any_different_file/excel2.tsv','rt')3 readers =csv.reader(tsvfile)4 for ...

  4. python导入文件列行_python读写csv文件并增加行列的实例代码

    python读写csv文件并增加行列,具体代码如下所示: # -*- coding: utf-8 -*- """ Created on Thu Aug 17 11:28: ...

  5. python打开csv文件设定分隔符_Python读取csv文件分隔符设置方法

    Windows下的分隔符默认的是逗号,而MAC的分隔符是分号.拿到一份用分号分割的CSV文件,在Win下是无法正确读取的,因为CSV模块默认调用的是Excel的规则. 所以我们在读取文件的时候需要添加 ...

  6. python生成csv文件带水印_Python从CSV文件导入数据和生成简单图表

    我们已经完成Python的基础环境搭建工作,现在我们尝试导入CSV数据 我们准备一个csv测试数据,文件名是csv-test-data.csv数据. 我们将文件传到Linux上 准备导入的代码 我们运 ...

  7. python csv文件写入失败_python解析csv文件失败

    准备把df文件按条件写入csv2的,但是写出来是空文件.所以我就按以下代码打印了一下发现只有字段,没有记录. 哪位老兄遇到过呢?还望指教一二import pandas as pd import num ...

  8. python操作文本之CSV文件

    python 操作csv文件有两种方法,一种是使用pandas来读写csv文件,第二种是使用csv模块读写csv文件 一.pandas读写csv文件 1.df = pd.read_csv(filepa ...

  9. python合并csv文件_PYTHON合并CSV文件的实践

    最近尝试使用PYTHON处理CSV数据,由于CSV文件有好几个,需要提前拼接,然后再处理,因此遇到了PYTHON对文件进行合并的问题.此次尝试了两种方法:一是调用CMD命令处理:二是使用PYTHON写 ...

  10. python对文件的写作方法_python读写csv文件 - 作文写作问答 - 归教作文网

    请教PYTHON读取CSV文件方法 #!/usr/bin/python # -*- coding: UTF-8  -*- from Log import Loginfo import cgi, os, ...

最新文章

  1. Leetcode 之Binary Tree Postorder Traversal(44)
  2. python 读法-python 怎么读,python 怎么读
  3. springboot+shiro+cas实现单点登录之shiro端搭建
  4. python16进制字节序_第 1 章 套接字、IPv4和简单的客户端/服务器编程
  5. 计算机二级vb考试查分,全国计算机二级考试VB程序设计复习试题
  6. 可视化工具第一篇(百度Echarts)
  7. html表格展开明细,展开/折叠HTML表格
  8. 开发运维日常坑 总结 51-100
  9. HDU1598 并查集+枚举
  10. SlideLive:提供时间线类型PPT模板下载
  11. typecho插件:用访问量统计插件
  12. ASP.NET SignalR 与LayIM配合,轻松实现网站客服聊天室(三) 激动人心的时刻到啦,实现1v1聊天...
  13. 棋盘覆盖问题与可视化代码演示
  14. oracle临时表经常被锁_linux安装oracle
  15. Java 春招、秋招面试总结
  16. 哈工大2022计算机系统大作业
  17. 简单了解下 TCP,学习握手和挥手以及各种状态到底是怎么样的
  18. 8DOER: Dual Cross-Shared RNN for Aspect Term-Polarity Co-Extraction(2020.10.22)
  19. java border类_Swing BorderLayout类
  20. 《概率论与数理统计》之 typeⅠ、typeⅡ(第一类错误和第二类错误)理解

热门文章

  1. python+opencv实现机器视觉基础技术(2)(宽度测量,缺陷检测,医学检测
  2. Pandas 统计分析基础 笔记4 任务4.4 使用分组聚合进行组内计算
  3. c++11特性move和forward区别
  4. decimal类型 go_Go 语言程序设计——字符串类型(2)
  5. linux 漏洞 poc,CVE-2017-11176: 一步一步linux内核漏洞利用 (二)(PoC)
  6. python爬取行业数据_用Python进行Web爬取数据
  7. python字典求平均值_Python - 字典中各个键的每个值的均值
  8. python爬取百度域名注册_python爬取百度域名_python爬取百度搜索結果url匯總
  9. java 自动加载jar_JAVA 动态(手动)加载jar文件
  10. three.js 把geometry转换成BufferGeometry