为了账号安全,请及时绑定邮箱和手机立即绑定

被python文件模式“w+”所迷惑

被python文件模式“w+”所迷惑

白衣非少年 2019-06-26 15:46:38
被python文件模式“w+”所迷惑从博士,模式“r+”、“w+”和“a+”打开文件以进行更新(注意,“w+”截断文件)。在二进制模式下,在区分二进制文件和文本文件的系统上,将‘b’附加到模式中以打开文件;在没有这种区别的系统上,添加‘b’没有任何影响。和这里W+:打开一个既可写又可读的文件。如果文件存在,则覆盖现有文件。如果该文件不存在,则创建一个用于读写的新文件。但是,如何读取打开的文件w+?
查看完整描述

3 回答

?
小怪兽爱吃肉

TA贡献1852条经验 获得超1个赞

假设您正在用with像你应该说的那样。然后你会做这样的事情来阅读你的文件:

with open('somefile.txt', 'w+') as f:
    # Note that f has now been truncated to 0 bytes, so you'll only
    # be able to read data that you write after this point
    f.write('somedata\n')
    f.seek(0)  # Important: return to the top of the file before reading, otherwise you'll just read an empty string
    data = f.read() # Returns 'somedata\n'

注意f.seek(0)-如果你忘了这件事,f.read()调用将尝试从文件末尾读取,并返回一个空字符串。


查看完整回答
反对 回复 2019-06-26
?
阿晨1998

TA贡献2037条经验 获得超6个赞

Python中的所有文件模式

  • r

    读书用
  • r+

    打开以进行读写(无法截断文件)
  • w

    写作用
  • w+

    用于写入和读取(可以截断文件)
  • rb

    用于读取二进制文件。文件指针放在文件的开头。
  • rb+

    读取或写入二进制文件
  • wb+

    写入二进制文件
  • a+

    打开供追加
  • ab+

    打开一个文件,用于二进制文件的附加和读取。如果文件存在,则文件指针位于文件的末尾。文件以附加模式打开。
  • x

    打开以进行独占创建,如果文件已经存在,则失败(Python 3)


查看完整回答
反对 回复 2019-06-26
  • 3 回答
  • 0 关注
  • 1488 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信