What is the difference between rb and r+b modes in file objects

前端 未结 4 1229
借酒劲吻你
借酒劲吻你 2020-12-04 14:27

I am using pickle module in Python and trying different file IO modes:

# works on windows.. \"rb\"
with open(pickle_f, \'rb\') as fhand:
        obj = pickle         


        
4条回答
  •  陌清茗
    陌清茗 (楼主)
    2020-12-04 15:06

    r opens for reading, whereas r+ opens for reading and writing. The b is for binary.

    This is spelled out in the documentation:

    The most commonly-used values of mode are 'r' for reading, 'w' for writing (truncating the file if it already exists), and 'a' for appending (which on some Unix systems means that all writes append to the end of the file regardless of the current seek position). If mode is omitted, it defaults to 'r'. The default is to use text mode, which may convert '\n' characters to a platform-specific representation on writing and back on reading. Thus, when opening a binary file, you should append 'b' to the mode value to open the file in binary mode, which will improve portability. (Appending 'b' is useful even on systems that don’t treat binary and text files differently, where it serves as documentation.) See below for more possible values of mode.

    Modes 'r+', 'w+' and 'a+' open the file for updating (note that 'w+' truncates the file). Append 'b' to the mode to open the file in binary mode, on systems that differentiate between binary and text files; on systems that don’t have this distinction, adding the 'b' has no effect.

提交回复
热议问题