我需要打开一个文件进行读写操作。如果找不到该文件,应该创建它。同时,它还应该被视为 Windows 的二进制文件。你能告诉我需要使用哪种文件模式序列吗?
我尝试使用'r+ab',但如果找不到文件,它不会创建文件。
谢谢
模式是ab+
,其中r
被隐含,而' a 'ppend和(' w 'write +'' r 'ead)是多余的。由于CPython(即常规Python)file
基于C stdio FILE
类型,在此处列出来自fopen(3)手册的相关行:
w+ 读写打开文件。 如果文件不存在,则创建该文件,否则将截断该文件。 流定位在文件的开头。
a+ 以读取和追加方式打开(在文件末尾写入)。 如果文件不存在,则创建该文件。 读取的初始文件位置在文件开头,但输出始终附加到文件末尾。
加上“b”以使DOS满意。您可能想要执行以下操作:
>>> 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'
open("filename", "a+b")
应该可以工作。它以追加/更新模式打开二进制文件。