Python文件(File)及读写操作及生成器yield

Python文件读写机制

open函数在内存中创建缓存区,将磁盘上的内容复制到此处。文件内容读入到文件对象缓冲区后,文件对象将缓冲区视为非常大的列表,其中每个元素都有一个索引。文件对象按字节(大约每个字符)来对文件对象缓冲区索引计数。许多文件方法隐式使用当前文件位置。例如,调用readline方法后,当前文件位置移动到下一个回车处。write方法在当前文件位置写入。

Python方法用于当前位置文件:
tell()方法:此方法用于当前文件位置和文件开始位置之间的相对位置,用字节进行计算
seek()方法:此方法将当前文件位置设为文件对象缓冲区中的新位置,seek方法有两个参数,第一个参数是字节数目,第二个参数是引用点。当前文件指针从引用点开始,移动给出的字节数目
典型用法:fd.seek(0),将当前文件位置重置为文件对象fd的开始位置。

这里写图片描述

当调用write(str)时,python解释器调用系统调用想把把内容写到磁盘,但是linux内核有文件缓存机制,所以缓存到内核的缓存区,当调用close()或flush()时才会真正的把内容写到文件

或者写入数据量大于或者等于写缓存,写缓存也会同步到磁盘上

关闭文件的目的

1:写缓存同步到磁盘

2:linux系统中每个进程打开文件的个数是有限的

3:如果打开文件数到了系统限制,在打开文件就会失败

这里写图片描述

with open("temp.txt","r") as f:
    pass

如上的代码不需要人为的进行close()语句的关闭,当脱离with这段代码时(即缩进与with相同),将会自动的进行close操作,如上代码可以等价看作:

f = open("temp.txt","r")
pass
f.close()

CSV文件

CSV是一种文件格式(特别是存储表格数据,例如excel),实际上是文本文件,可以使用文本文件函数和方法。

Python提供了csv模块
要处理CSV格式的文件,需要一些新的对象。csv.reader对象读取文件(使用reader构造函数创建reader对象,参数是文件对象),csv.writer对象写CSV文件,csv.writer对象通过使用方法writerow来将数据行写入。

import csv

fObjt = open("Work.csv","rU")
csvReader = csv.reader(fObjt)
sheet = []
for row 
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值