File mode for creating+reading+appending+binary

前端 未结 2 1775
无人及你
无人及你 2021-01-01 08:41

I need to open a file for reading and writing. If the file is not found, it should be created. It should also be treated as a binary for Windows. Can you tell me the file mo

相关标签:
2条回答
  • 2021-01-01 09:32

    The mode is ab+ the r is implied and 'a'ppend and ('w'rite '+' 'r'ead) are redundant. Since the CPython (i.e. regular python) file is based on the C stdio FILE type, here are the relevant lines from the fopen(3) man page:

    • w+ Open for reading and writing. The file is created if it does not exist, otherwise it is truncated. The stream is positioned at the beginning of the file.

    • a+ Open for reading and appending (writing at end of file). The file is created if it does not exist. The initial file position for reading is at the beginning of the file, but output is always appended to the end of the file.

    With the "b" tacked on to make DOS happy. Presumably you want to do something like this:

    >>> 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'
    
    0 讨论(0)
  • 2021-01-01 09:41
    open("filename", "a+b")
    

    should work. It opens a binary file in append/update mode.

    0 讨论(0)
提交回复
热议问题