python文件读写a+_Python文件读写 - 文件r+ a+ open读写实际表现[示例]

先说结论:

文件r+ open:

1. write()不能实现插入写,它总是覆盖写或附加写;

2. 如果文件一打开即write(),则从开头覆盖写;

3. 如果文件一打开,用f.seek()指定文件指针位置,然后执行f.write()则从指针位置写(覆盖写);

4. 如文件打开后先执行了readline(), 然后再执行write(),实现的是附加写

文件a+ open:

1. 文件打开后起始指针为文件末尾,readline()将读不到数据

2. write()始终是附加写 ,即使将文件指针指到中间再执行write()仍然附加写

共性:

1. write()是先写内存,f.close()时才将物理写入

2. f.tell()函数把'\n'换行符当成一个字符而不是两个,计算偏移量时会是1不会是2

测试过程:

文件companies.txt内容:

google

tencent

alibaba

baidu

r+模式:

# python version: 3.6.3

>>> f = open(r'python/file/companies.txt','r+')

>>> f.tell() #查看文件指针值

0

>>> f.readline() #读一行

'google\n'

>>> f.tell() #再次查看文件指针值

7

>>> f.write('xxx') #在文件指针位置为7时,尝试写入字符串'xxx'

3

>>> f.tell() #再次查看文件指针值,已经变为文件末尾了

31

>>> f.readline() #再读一行,看下是读到eof还是接着读第二行

'tencent\n'

>>> f.readlines() #实际上还是读第二行,并未从文件指针处开始读,而且第二行中也没有之前写入的'xxx',那么'xxx'写到哪里去了呢?把剩下的行全部读出来

['alibaba\n', 'baidu']

>>> f.seek(

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值