只要是字符都跟编码相关,如果要把一个文件当某种字符来看,就要告诉你到底是哪个编码表去找,
字节流跟字符无关,一个字节8位,字节和字符有关,是按照1个字节理解还是2个字节理解,还是变长字节理解,所以就看是文本处理还是二进制处理,这两种方式就决定了你到底用不用编码表

指定一个编码即可,在二进制的时候就跟编码无关了
这时候把b去掉


写的时候指针在最后了。seek0把指针调整到开头
flush就写进去了

ansi可以理解为gbk

b0 a1天字第一号
采用另外的方式

写入的时候是按照windows默认的gbk双字节写入的,但是在这里按照utf-8读取,如果使用utf-8模式写入之后,读取的时候不加编码,但在windows是按照默认的gbk打开的

如果使用ascii编码外的字符,一定要指定编码格式,写入的格式应该跟读取的格式一样,否则就会出现这样的问题,pyhon认识,utf8和utf-8,但是有些地方不认

在windows是双字节的,linux utf-8的就是三字节的,如果你写的跨平台,打开或者写入一定要把后面的encoding加上,写死utf-8,这样就不会出现问题了

这边最高位算出来的值都是很大的

errors就是问你要不要捕捉编码产生的错误,如果是none或strict就立即抛出异常,ignore表示忽略,如果抛出异常,代表当前线程的结束,整个程序就崩了,可以使用异常捕获

newine指的的是新行,新行如何处理的问题
w等于写的是白纸,先写入然后再读取
看起来比较麻烦修改一下,改成b二进制,二进制需要用二进制的方式写入,读到的就是bytes

先写入这个文件,然后按照不同的newline去读

![在这里插入图片描述![](https://img-blog.csdnimg.cn/201910180949295.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQyMjI3ODE4,size_16,color_FFFFFF,t_70)第一次用none读,默认

’'空的情况

\n,相当于指定\n是换行符

\r\n是换行符,就在后面断开了

你写的文本,他要读取所有行readlines,就需要理解什么是行

’'空就不做替换,依然认为这些都是操作系统认可的,\n这些东西是linux,unix认可的,\r\n是windows支持的,\r是mac

*n作为换行符,就只能给你2行*

none会替换换行符,替换成\n,一般情况下这个参数使用缺省是比较好的,因为用缺省就鞥断出来 正好是你想要的几行
closefd,默认情况是True,用完之后会把文件描述符关闭,否则closefd基本上文件描述符依然保持着,文件描述符不可能无限制使用
标准输入,标准输出,标准错误输出分别对应的描述符是012,,这三个设备就占据三个文件描述符,当你打开一个文件的时候会分配一个文件描述符给你,这个文件描述符的资源其实是有限的,甚至有的地方是有上线的。打开一个设备等于的开一个文件,只要不释放掉,文件描述符就分配给你了,但是文件描述符是有上线的,不允许你超越上线,你超越上线可能资源不够了,所以文件描述符不可能分配无限资源给你
一旦closefd确实需要回收描述符,因为文件描述符是有限的,每成功打开一个文件,会获得一个文件描述符,这个文件描述符是一个整数


现在文件描述符是6

对于一个打开的文件和设备都需要一个文件描述符,
提示不能再关闭的文件进行IO操作


除非有特别用处否则不要这么做,记住,文件描述符是计算机的一种资源,可以表示文件打开后的一个独立ID,称为文件描述符,是一个整型数据,
前面的0,1,2是标准输入,标准输出,标准错误输出


字节打开一个文件会占掉一个文件描述符,打开的时候虽然newline缺省值是none,但是实际会把文件理的换行符做替换,大多数是做文本处理,编码是必须知道的
缓冲区在进行二进制操作的时候可能要调整下


文件指针在二进制下,可以任意挪动,但是不能超过左边界,文本就是到开头,结尾,相对位置,右超界都是可以的,seek是按照字节走的

一个读三个写rwxa,剩下的不能独立存在bt+,文本模式跟字符相关,二进制模式跟字节相关
在文本 模式下读字符,二进制下读字节,字节就是序列没有换行的概念


读7相当于读7个字符


二进制读字节

保存text2

读不到是因为指针的问题
)
readlines现在就断开了

还可以迭代,print自带换行所以显得比较大

size是设置一行内读取几个字符,readline本身是读一行

readlines是你要返回几行,这样还不如迭代的时候控制,几行一停,生成器就可以搞定

基本上按行迭代,没有用readlines
readlines特点是立即返回一个列表,f2确实是一个可迭代对象,迭代f2是要一个给你一个
readlines是把文件立即处理,返回一个所有行的列表

可以2行2行来

一般都是把文件对象,当作可迭代对象,直接对这个文件对象当作可迭代对象
看基本都这么迭代

write是把你要写的字符串或者bytes扔进去,writelines,是把字符串列表列入文件

写的数据要么str,要么是bytes
不能整型

这里是成功了但是没有写的能力

给你挤到一块去了
下面换行符就加上去了
readlines是按照换行符读取进来
writelines是把列表输出,但是里面有没有换行符不关心(有些库会替你补换行符)换行符是当前操作系统的换行符



下面是linuex的,上面是windows的

flush是把缓冲区的数据直接写到磁盘,在close的过程中是可以做flush的
closed知道是不是真的关闭,一个文件对象调用close之后再调用close,本质上没什么大问题
close之后再打开得到的就是另外的文件描述符


判断这个文件到底是不是可以seek的
允许不允许seekable,这个文件是否可以使用文件指针来回移动

2019/10/17 05-文件对象的读写方法相关推荐

  1. python csv读写方法_python中csv文件的若干读写方法小结

    如下所示: //用普通文本文件方式打开和操作 with open("'file.csv'") as cf: lines=cf.readlines() ...... //用普通文本方 ...

  2. 10.17 linux 文件权限

    文件权限模拟练习 [root@wen ~]# groupadd incahome[root@wen ~]# usersdd oldboy -g incahome-bash: usersdd: comm ...

  3. 腾讯2020校园招聘正式批市场研究 | 群面(2019.10.17)

    岗位:市场研究 批次:正式批 啊 是我梦想的腾讯爸爸啊,鉴于我太菜了,只能帮大家到群面了--. ? 「更多我的秋招经验贴」 <2020我的秋招总结帖 [数据分析岗] | 目录索引> 一.面 ...

  4. (每日一读2019.10.17)基于SE(2)-XYZ约束的地面车辆视觉里程计定位与地图构建

    论文:pdf 中文下载地址:pdf -----word 代码下载地址:code 论文提出了一种基于里程计和单目视觉图优化的地面车辆定位和建图框架. 与一般的基于SE3姿态优化的视觉slam或一些随机对 ...

  5. python在读写文件之前需要创建文件对象-Python对象序列化写入文件对象

    1.创建Python文件对象的读写模式(r,w模式)与创建Java输入输出流: FileInputStream inputStream=new FileInputStream(new File(&qu ...

  6. python打开文件写文件乱码_Python读写文件乱码问题

    对开发者来说,最恼人的问题之一莫过于读写文件的时候,由于编码千差万别,出现乱码问题.好难快速解决啊... 最近我也遇到了这样的问题,经研究,把大致的解决思路拿出来共享. 1. python中习惯首先声 ...

  7. python读写文件函数_Python读写文件

    转载自:http://blog.csdn.net/adupt/article/details/4435615 1.open 使用open打开文件后一定要记得调用文件对象的close()方法.比如可以用 ...

  8. python open追加模式_Python文件操作,open读写文件,追加文本内容实例

    1.open使用open打开文件后一定要记得调用文件对象的close()方法.比如可以用try/finally语句来确保最后能关闭文件. file_object = open('thefile.txt ...

  9. Python入门--文件对象的常用方法,write,read,readline

    #文件对象的常用方法 #方法名 说明 #read([size])-->从文件中读取size个字节或字符的返回内容.若省略[size],则读取到文件末尾 #即读取文件所有内容 #readline( ...

最新文章

  1. 【实例】去哪儿搜索实例实现
  2. 二十三、 爬取mzsock网站写真社区
  3. Android -- PullToRefresh应用
  4. 虚拟机无法接受组播消息_IPTV(组播)骨干网完整解决方案--四川广电网络
  5. php数组o m n mn,O(m + n)和O(mn)之间的区别?
  6. 只用一周的业余时间,这位逆天博士生解决了困扰数学界数十年的难题
  7. 本地wordpress博客系统安装搭建实践
  8. oracle all_policies,Oracle数据库权限管理学习笔记
  9. Ext.form.DateField简单用法及日期范围控制
  10. WordPress根目录(Root)
  11. Axure 注册码(亲测可用)
  12. IP 地址聚合 经典算法 已经过验证
  13. Dorado7 DataGrid变颜色 自定义渲染
  14. vb 运行错误429 mysql_win7系统运行VB工具提示“运行时错误429 ActiveX部件不能创建对象”的解决方法...
  15. Win7安装CENTOS
  16. 阿里开女性创业者大会 马云:世界因为女性而美好
  17. 【推荐】移动App测试中的最佳做法
  18. 微信wifi服务器地址,从零开始改造路由器实现微信连WIFI的功能(七):更简单的认证服务器wifidog-server...
  19. python爬虫公众号音频源代码_python爬取音频下载的示例代码
  20. zookeeper原理:分布式协同技术

热门文章

  1. ResultSet 状态详解
  2. ResultSet工具类
  3. HTML怎么设置超链接字体颜色和点击后的字体颜色?
  4. PLC主要是指数字运算操作电子系统的可编程逻辑控制器
  5. Spacial Structures Uva806
  6. 小红书koc铺量投放怎么做?kol和koc组合投放方案分享
  7. Go 并发编程Mutex(二)--源码
  8. 卓训教育:孩子不爱阅读怎么办,家长可以这样培养孩子的阅读习惯
  9. Qt ListView使用
  10. html5 canvas 画布基础