专栏首页python3python 文件操作读、写、追加的区别

python 文件操作读、写、追加的区别

打开文件的常用模式有:

  • r ,只读模式【默认】
  • w,只写模式【不可读;不存在则创建;存在则清空内容;】
  • a, 追加模式【可读; 不存在则创建;存在则只追加内容;】

"+" 表示可以同时读写某个文件

  • r+, 读写【可读,可写】【可理解为先读后写,不擦除原文件内容,指针在0】
  • w+,写读【可读,可写】【可理解为先写后读,擦除原文件内容,指针在0】
  • a+, 写读【可读,可写】【不擦除原文件内容,但指针直接到最后,读取原内容先重置指针】

模式

可做操作

若文件不存在

是否覆盖

指针位置

r

只能读

报错

-

0

r+

可读可写

报错

0

w

只能写

创建

0

w+

可写可读

创建

0

a

只能写

创建

否,追加写

最后

a+

可读可写

创建

否,追加写

最后

可以作个测试文件,修改下打开模式,然后输出看下指针区别

f=open('I:\\python\\test\\text.txt','r+')
print('指针在:',f.tell())
lines=f.read()
if f.writable():
    f.write('nono\n')
else:
    print("此模式不可写")
print('指针在:',f.tell())
f.close()

a+模式下,虽然能读取,但指针已到最后,直接read,不会出内容,可以用seek()重置指针

f=open('I:\\python\\test\\text.txt','a+')
print('指针在:',f.tell())
lines=f.read()
print('文件内容是:',lines)  #输出为空
print('seek 0')
f.seek(0)
print('指针在:',f.tell())
lines=f.read()
print('文件内容是:',lines)
if f.writable():
    f.write('nono\n')
else:
    print("此模式不可写")
print('指针在:',f.tell())
f.close()

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 笨办法学Python - 习题1: A

    在windows上安装完Python环境后,开始按照《笨办法学Python》书上介绍的章节进行练习。

    py3study
  • python计算当前输入时间的下一秒

    ''' time: 12:00:00 plus 1 second time result : 12:00:01 '''

    py3study
  • Python练习17:依次接收用户输入的

    py3study
  • python计算当前输入时间的下一秒

    ''' time: 12:00:00 plus 1 second time result : 12:00:01 '''

    py3study
  • Python 3 print 函数用法总

     str = "the length of (%s) is %d" %('runoob',len('runoob')) 

    py3study
  • wordpress搜索结果排除某个分类如何操作

      我们知道wordpress的搜索结果页search.php和分类页category.php是一样的,但是客户的网站是功能比较多的系统,有新闻又有产品,如果搜...

    ytkah
  • 【PS】试着做一张喜欢的壁纸

    这学期选了“多媒体系统导论”这门课,于是正好做了个PS的实验,老师比较严作业也就写的比较认真,发一下做封面这张壁纸的步骤吧。平台是Photoshop CC201...

    ZifengHuang
  • 问答方式学 Node.js

    A:Node.js 是指运于 web 服务端的 JavaScript,基于 Chrome V8 引擎,有非阻塞,事件驱动 I/O 等特性。

    三毛
  • AFNetworking+Python+Flask+pyOpenSSL构建iOS HTTPS客户端&服务器端

    最后我现有的感觉是, 在HTTP服务器上放一个证书, 在原本的HTTP访问之前客户端先检查证书是否正确

    周希
  • nginx 禁止ip直接访问,防止恶意解析

    找到 nginx 的默认配置文件 nginx.conf 编辑文件找到 默认的80 server

    Alone88

扫码关注云+社区

领取腾讯云代金券