博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
2 [文件]-文件操作
阅读量:5122 次
发布时间:2019-06-13

本文共 1742 字,大约阅读时间需要 5 分钟。

1.文件操作

  def fileno(self, *args, **kwargs): # real signature unknown        返回文件句柄在内核中的索引值,以后做IO多路复用时可以用到    def flush(self, *args, **kwargs): # real signature unknown        把文件从内存buffer里强制刷新到硬盘    def readable(self, *args, **kwargs): # real signature unknown        判断是否可读    def readline(self, *args, **kwargs): # real signature unknown        只读一行,遇到\r or \n为止    def seek(self, *args, **kwargs): # real signature unknown        把操作文件的光标移到指定位置        *注意seek的长度是按字节算的, 字符编码存每个字符所占的字节长度不一样。        如“路飞学城” 用gbk存是2个字节一个字,用utf-8就是3个字节,因此以gbk打开时,seek(4) 就把光标切换到了“飞”和“学”两个字中间。        但如果是utf8,seek(4)会导致,拿到了飞这个字的一部分字节,打印的话会报错,因为处理剩下的文本时发现用utf8处理不了了,因为编码对不上了。少了一个字节    def seekable(self, *args, **kwargs): # real signature unknown        判断文件是否可进行seek操作    def tell(self, *args, **kwargs): # real signature unknown        返回当前文件操作光标位置     def truncate(self, *args, **kwargs): # real signature unknown        按指定长度截断文件        *指定长度的话,就从文件开头开始截断指定长度,不指定长度的话,就从当前位置到文件尾部的内容全去掉。    def writable(self, *args, **kwargs): # real signature unknown        判断文件是否可写

   

 

2.flush:内存刷新到硬盘

 

 3.readline:读取一行

 

 

4.文件光标:tell  seek read(1)

 

 

  (1)read:字符读取

  

  

 

   (2)seek tell  字节读取

>>> f = open('file_1.bak','r+')>>> f.tell()0>>> f.read(1)    #读取一个字符'路'>>> f.tell()        #光标移动2个字节2>>> f.seek(0)0>>> f.read(1)'路'>>> f.read(1)'费'>>> f.tell()4>>> f.seek(3)    #光标移动到第3个字节3>>> f.tell()3>>> f.read(1)   #gbk  一个字符占2个字节  #读取失败Traceback (most recent call last):  File "
", line 1, in
UnicodeDecodeError: 'gbk' codec can't decode byte 0xb5 in position 4: illegal multibyte sequence

 

 

 5.截断:truncate(3) 剩下3个字节长度

 

>>> f = open('file_1.bak','r+')>>> f.truncate(3)                   # 剩下3个字节长度3

   

 

转载于:https://www.cnblogs.com/venicid/p/8404931.html

你可能感兴趣的文章
Linux概述:是个操作系统:CentOS7的安装:先安装minimal
查看>>
神经网络
查看>>
python的第一天
查看>>
POJ 1837 DP
查看>>
【9】log4net 实例
查看>>
java缓存——(五)LocalCache本地缓存分享
查看>>
POJ1741 Tree
查看>>
mock简单例子
查看>>
vue从头开始
查看>>
HTML: a的僞類
查看>>
Java 8开发的4大顶级技巧
查看>>
SpringBoot+Gradle+Freemarker报错,Check your ViewResolver setup
查看>>
maven项目打包发布到私有仓库
查看>>
Eclipse中SpringBoot项目POM文件报UnKnown的解决方案
查看>>
文件创建、查看、删除
查看>>
Python基础教程【读书笔记】 - 2016/7/19
查看>>
通过Servlet生成验证码图片(转)
查看>>
more命令(转)
查看>>
SwipeRefreshLayout + RecyclerView 实现 上拉刷新 和 下拉刷新
查看>>
warshall 求传递闭包 Cow Contest POJ - 3660
查看>>