首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >creating+reading+appending+binary的文件模式

creating+reading+appending+binary的文件模式
EN

Stack Overflow用户
提问于 2010-05-03 20:14:00
回答 2查看 68K关注 0票数 40

我需要打开一个文件进行读写。如果找不到该文件,则应创建该文件。它也应该被视作Windows的二进制文件。你能告诉我我需要使用的文件模式序列吗?

我尝试了'r+ab‘,但如果找不到文件,它不会创建这些文件。

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-05-03 20:26:04

模式是ab+r是隐含的,‘a’‘ppend和(’w‘’rite '+‘r’‘ead)是多余的。由于CPython (即regular python) file基于C stdio FILE类型,下面是fopen(3)手册页中的相关代码行:

  • w+打开以进行读取和写入。如果该文件不存在,则创建该文件,否则将截断该文件。流位于文件的开头。
  • a+打开以进行读取和附加(在文件末尾写入)。如果该文件不存在,则创建该文件。要读取的初始文件位置位于文件的开头,但输出始终附加到文件的末尾。

加上"b“来取悦DOS。假设您想要这样做:

代码语言:javascript
复制
>>> f = open('junk', 'ab+')
>>> f
<open file 'junk', mode 'ab+' at 0xb77e6288>
>>> f.write('hello\n')
>>> f.seek(0, os.SEEK_SET)
>>> f.readline()
'hello\n'
>>> f.write('there\n')
>>> f.seek(0, os.SEEK_SET)
>>> f.readline()
'hello\n'
>>> f.readline()
'there\n'
票数 64
EN

Stack Overflow用户

发布于 2010-05-03 20:23:35

代码语言:javascript
复制
open("filename", "a+b")

应该行得通。它在追加/更新模式下打开一个二进制文件。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2757887

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档