python 文本处理-python文件内容处理(一)

综述:一定要理解光标移动的规则

---------------------------------------------------------------------------第一部分基本操作--------------------------------------------------------------

1.对象可以调用方法,文件是对象,所以也可调用对应的方法。操作文件对象,先建立文件对像。

2.文件打开方法或者说对象创建方法

方法一:函数open("filename"),唯一一个强制参数,文件名,其他参数:打开模式,编码用的多一些,需要close()函数关闭。返回文件对象(句柄),在对文件进行处理过程都需要使用到这个函数,如果该文件无法被打开,会抛出 OSError。

方法二:with open() ----自动关闭,报错也会自动关闭,不需要 close() 函数关闭

3.打开模式决定可以进行哪些操作,也就是文件对象模式。

文件打开基本模式:(1)只读r;不能写 (2)只写w;不能读 (3)追加a;可读,无则新增,有则追加 (4)组合模式;读写

第一部分:文件的读"r":相关方法read();readline();readlines()

read(),按照字符取数据,注意光标位置,可指定读取的字符长度:例如read(6)读取六个字符长度

readline(),取一行的内容,包括,换行符也会打印,也有参数限制可打印的长度;连续print打印,光标移动打印行的末尾,打印的不重复

readlines(),取全部的内容,把每行作为列表的一个元素,以列表的形式打印,可for循环遍历

第二部分:文件的写"w":相关方法write(),文件写入内容 ,注意,写的模式慎用,打开的时候已经清空

第三部分:文件的追加"a’

第四部分:"r+" -----读写,打开一个文件用于读写。文件指针将会放在文件的开头。

"w+’---写读,该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件

"a+’---读写,如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。

---------------------------------------------------------第三部分-------------------------------------------------------------------------------

一,关于换行符的打印:

二,光标移动以及位置

seek() tell()

(1)seek()移动读取文件时光标的位置;

格式:file.seek(offset,whence)也即是seek([文件偏移量][文件指针位置])

说明:参数offset表示要偏移的量,0即是不偏移,正数即向右偏移,负数即向左偏移

参数whence表示参照位置,其中whence取值0 代表从文件开头开始算起,1代表从当前位置开始算起,2代表从文件末尾算起。whence值为空没设置时会默认为0

(2)tell()可打印当前光标的位置

展示:

with open("file1.txt") as con:#print(con.read())

mon=con.read(4)print(mon)print(con.tell()) #文件对象调

con.seek(1,0) #从首项开始一个字符的位置

print(con.tell())----------结果-----

#no p#4#1

(3)对于同一个文件对象连续的操作要注意光标的位置是连续变动的

#以下写入文件时

with open("runoob.txt","w") as fib:print(fib.tell()) #源文件已经被格式化,光标在第0位

fib.write("11111")print(fib.tell()) #写入之后在第5位,在下一位追加

fib.write("22222")#1111122222 文件结果

三,缓存区刷新

flash()刷新缓存区的数据到磁盘,缓冲区被清空,借助进度条打印的例子很容易理解

#实现进度条#原理:文件没有关闭之前,数据都是在缓存区

importsys,time

fo= open("runoob.txt", "wb")for i in range(30):

sys.stdout.write("*") #还在内存缓冲区

sys.stdout.flush() #刷新缓冲区(可将此行注释观察异同!)

time.sleep(0.5)

fo.close()

比如,一般这个是防止短电未保存。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值