Python csv文件操作
一、open文件打开和with open as 文件打开的区别
file= open("test.txt","r")
try:
for line in file.readlines():
print(line)
except:
print("error")
finally:
file.close()
with open("test.txt","r") as file:
for line in file.readlines():
print(line)
用with语句的好处,就是到达语句末尾时,会自动关闭文件,即便出现异常。
with语句实际上是一个非常通用的结构,允许你使用所谓的上下文管理器。上下文管理器是支持两个方法的对象:__enter__和__exit__。
方法__enter__不接受任何参数,在进入with语句时被调用,其返回值被赋给关键字as后面的变量。
方法__exit__接受三个参数:异常类型、异常对象和异常跟踪。它在离开方法时被调用(通过前述参数将引发的异常提供给它)。如果__exit__返回False,将抑制所有的异常。
文件也可用作上下文管理器。它们的方法__enter__返回文件对象本身,而方法__exit__关闭文件
with语句作用效果相当于上面的try-except-finally
二、csv文件的读取
with open('test.csv', 'r') as csv_file:
reader = csv.reader(csv_file)
#print(list(reader))
for item in reader: #按行读取
print (item)
>>> list(reader)---> [['name','age'], ['Bob','14'], ['Tom','23'], ...]
>>> item -->
['name','age']
['Bob','14']
['Tom','23']
...
三、csv文件的写入
import csv
header = ['name','age']
data = [
['Bob',14],
['Tom',23],
['Jerry',18]
]
with open('test.csv', 'w', newline='')as csv_file:
csv_writer = csv.writer(csv_file)
csv_writer.writerow(header)
# csv_writer.writerows(data) # 写入多行
for row in data:
csv_writer.writerow(row) # 单行写入
指定newline='',则可以避免每写入一行就写入一空行。

四、DictReader和DictWriter操作csv
使用DictReader可以像操作字典那样获取数据,把表的第一行(一般是标头)作为key。可访问每一行中那个某个key对应的数据。
with open('test.csv', 'r')as csv_file:
dict_reader = csv.DictReader(csv_file)
name_list = [row['name'] for row in dict_reader]
print(name_list)
print(len(list(dict_reader)))
>>> ['Bob', 'Tom', 'Jerry']
>>> 0
dict_reader只能迭代一次
header = ['name', 'age']
data = [
{'name': 'Bob', 'age': 14},
{'name': 'Tom', 'age': 23},
{'name': 'Jerry', 'age': 18}
]
with open('test.csv', 'w', newline='')as csv_file:
dict_writer = csv.DictWriter(csv_file, header)
dict_writer.writeheader()
dict_writer.writerows(data) # 写入多行
for row in data:
dict_writer.writerow(row) # 单行写入
Python csv文件操作的更多相关文章
- [Python Study Notes]csv文件操作
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ...
- Python :open文件操作,配合read()使用!
python:open/文件操作 open/文件操作f=open('/tmp/hello','w') #open(路径+文件名,读写模式) 如何打开文件 handle=open(file_name,a ...
- java csv 文件 操作类
一个CSV文件操作类,功能比较齐全: package tool; import java.io.BufferedReader; import java.io.BufferedWriter; impor ...
- Python 常见文件操作的函数示例(转)
转自:http://www.cnblogs.com/txw1958/archive/2012/03/08/2385540.html # -*-coding:utf8 -*- ''''' Python常 ...
- 孤荷凌寒自学python第三十五天python的文件操作之针对文件操作的os模块的相关内容
孤荷凌寒自学python第三十五天python的文件操作之针对文件操作的os模块的相关内容 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 一.打开文件后,要务必记得关闭,所以一般的写法应当 ...
- 孤荷凌寒自学python第三十三天python的文件操作初识
孤荷凌寒自学python第三十三天python的文件操作初识 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 今天开始自学python的普通 文件操作部分的内容. 一.python的文件打开 ...
- python中文件操作的六种模式及对文件某一行进行修改的方法
一.python中文件操作的六种模式分为:r,w,a,r+,w+,a+ r叫做只读模式,只可以读取,不可以写入 w叫做写入模式,只可以写入,不可以读取 a叫做追加写入模式,只可以在末尾追加内容,不可以 ...
- python中文件操作的其他方法
前面介绍过Python中文件操作的一般方法,包括打开,写入,关闭.本文中介绍下python中关于文件操作的其他比较常用的一些方法. 首先创建一个文件poems: p=open('poems','r', ...
- Python常见文件操作的函数示例
# -*-coding:utf8 -*- ''''' Python常见文件操作示例 os.path 模块中的路径名访问函数 分隔 basename() 去掉目录路径, 返回文件名 dirname() ...
随机推荐
- 学习Linux系统永远都不晚
作为一名机械专业毕业的学生,两年的工作经历实实在在地教会了我如何认清现实,让当初那个对机械行业无比憧憬的少年明白了自己选择的路有多艰难.由于我的父母都是工人,所以我比其他同龄人能更早地接触到工业的魅力 ...
- CentOS LVM 卷在线扩容
场景: vmware 虚拟机,装了CentOS ,更改了虚拟机磁盘的大小:从200G,扩展到320G,可以参考本文写了步骤. 1. 在线扫描虚拟机SCSI新增的容量 # for i in `find ...
- 10 Class文件结构
- 九、响应式发:rem和less(适配移动端)
一.响应式开发 响应式开发优先适配移动端又兼容到pc端 官网:https://less.bootcss.com/usage/ 教程:https://www.w3cschool.cn/less/ rem ...
- Linux每日练习-awk命令的内外部变量传递20200225
- TextView标签的属性和跑马灯效果
text:显示的内容 textSize:文本的大小 textColor:文本的颜色 visibility:可见性 默认可见,invisible:表示不可见,但对控件的显示区域做了保留 gone:隐藏 ...
- 定义一个共享数据块DB1 在DB1中定义一个数组 用程序 访问数据里面的某一个成员或者地址连续的成员
提纲 : 定义一个共享数据块 DB1 在DB1 中定义数组 用SFC21 实现 实现全部数组元素的赋一样的值 实现 给数组中的某一个元素赋值 实现 对数组中的全部元素赋值 实现将数组中的某个 或者 某 ...
- 网卡绑定多个ip
现在我的树莓派上的wlan0的IP是192.168.31.237,之前通过双绞线连接时候eth0的ip是192.168.31.50 . 我就想啊,能不能把wlan0的ip设置成50.......... ...
- 027-PHP编码和解码函数base64
<?php $data = "我爱PHP";//解码前的值 print("我爱PHP: " . base64_encode($data)); //进行解码 ...
- oracle学习笔记(4)
4.oracle数据库的启动流程 windows操作系统 启动监听: lsnrctl start; 启动数据库实例:oradim-startup-sid 实例名 linux系统 启动监听:lsnrct ...