文章目录

  • From builtins.py
  • Dontla 20191030
  • Dontla 20200422

From builtins.py

def open(file, mode='r', buffering=None, encoding=None, errors=None, newline=None, closefd=True): # known special case of open"""Open file and return a stream.  Raise IOError upon failure.打开文件并返回流。 失败时抛出IOError异常。file is either a text or byte string giving the name (and the pathif the file isn't in the current working directory) of the file tobe opened or an integer file descriptor of the file to bewrapped. (If a file descriptor is given, it is closed when thereturned I/O object is closed, unless closefd is set to False.)file是一个文本或字节字符串,给出了要打开的文件的名称(如果文件不在当前工作目录中,则给出了路径)或要包装的文件的整数文件描述符。 (如果给出了文件描述符,则除非将closefd设置为False,否则当关闭返回的I / O对象时,它将关闭。)mode is an optional string that specifies the mode in which the fileis opened. It defaults to 'r' which means open for reading in textmode.  Other common values are 'w' for writing (truncating the file ifit already exists), 'x' for creating and writing to a new file, and'a' for appending (which on some Unix systems, means that all writesappend to the end of the file regardless of the current seek position).In text mode, if encoding is not specified the encoding used is platformdependent: locale.getpreferredencoding(False) is called to get thecurrent locale encoding. (For reading and writing raw bytes use binarymode and leave encoding unspecified.) The available modes are:mode是一个可选字符串,用于指定打开文件的模式。 默认为“ r”,这意味着可以在文本模式下阅读。 其他通用值是用于写入的“ w”(如果文件已经存在,则将其内容清空),用于创建和写入新文件的“ x”,以及用于附加的“ a”(在某些Unix系统上,这意味着所有写入都附加到 不论当前搜寻位置在文件末尾)。 在文本模式下,如果未指定编码,则使用的编码取决于平台:调用locale.getpreferredencoding(False)以获取当前的语言环境编码。 (要读取和写入原始字节,请使用二进制模式,同时不用指定编码。)可用模式为:========= ===============================================================Character Meaning--------- ---------------------------------------------------------------'r'       open for reading (default) 打开读模式(默认)'w'       open for writing, truncating the file first 打开写模式,先截断文件(可能就是不能边写边读)'x'       create a new file and open it for writing 创建一个新文件并打开以进行写入'a'       open for writing, appending to the end of the file if it exists 打开进行写入,如果存在内容则追加到文件末尾'b'       binary mode 二进制模式't'       text mode (default) 文字模式(默认)'+'       open a disk file for updating (reading and writing) 打开磁盘文件以进行更新(读取和写入)'U'       universal newline mode 通用换行模式 (deprecated 强烈不建议)========= ===============================================================The default mode is 'rt' (open for reading text). For binary randomaccess, the mode 'w+b' opens and truncates the file to 0 bytes, while'r+b' opens the file without truncation. The 'x' mode implies 'w' andraises an `FileExistsError` if the file already exists.默认模式是“ rt”(打开以阅读文本)。 对于二进制随机访问,模式“ w + b”将打开并将文件截断为0字节,而模式“ r + b”将打开文件而不会截断。“ x”模式包含“ w”的功能并且,如果文件已经存在,则引发“ FileExistsError”。(所以就是,如果稳健存在时,用‘w’就不会引发异常)Python distinguishes between files opened in binary and text modes,even when the underlying operating system doesn't. Files opened inbinary mode (appending 'b' to the mode argument) return contents asbytes objects without any decoding. In text mode (the default, or when't' is appended to the mode argument), the contents of the file arereturned as strings, the bytes having been first decoded using aplatform-dependent encoding or using the specified encoding if given.Python区分以二进制和文本模式打开的文件,即使底层操作系统没有。 以二进制模式打开的文件(在mode参数后面添加“ b”)以字节对象形式返回内容,而无需进行任何解码。 在文本模式下(默认值,或在模式参数后附加't'),文件内容以字符串形式返回,首先使用与平台有关的编码或指定的编码(如果给定的话)对字节进行解码。'U' mode is deprecated and will raise an exception in future versionsof Python.  It has no effect in Python 3.  Use newline to controluniversal newlines mode.不建议使用“ U”模式,它将在将来的Python版本中引发异常。 它在Python 3中无效。使用换行符控制通用换行符模式。buffering is an optional integer used to set the buffering policy.Pass 0 to switch buffering off (only allowed in binary mode), 1 to selectline buffering (only usable in text mode), and an integer > 1 to indicatethe size of a fixed-size chunk buffer.  When no buffering argument isgiven, the default buffering policy works as follows:buffering是用于设置缓冲策略的可选整数。 传递0以关闭缓冲(仅在二进制模式下允许),传递1以选择行缓冲(仅在文本模式下可用),并传递大于1的整数以指示固定大小的块缓冲区的大小。 如果未指定任何缓冲参数,则默认的缓冲策略如下:* Binary files are buffered in fixed-size chunks; the size of the bufferis chosen using a heuristic trying to determine the underlying device's"block size" and falling back on `io.DEFAULT_BUFFER_SIZE`.On many systems, the buffer will typically be 4096 or 8192 bytes long.* 二进制文件以固定大小的块缓冲; 缓冲区的大小是通过试探法来确定底层设备的“块大小”,然后回退到io.DEFAULT_BUFFER_SIZE上进行选择的。在许多系统上,缓冲区的长度通常为4096或8192字节。    * "Interactive" text files (files for which isatty() returns True)use line buffering.  Other text files use the policy described abovefor binary files.* “交互式”文本文件(isatty()返回True的文件)使用行缓冲。 其他文本文件将上述策略用于二进制文件。encoding is the name of the encoding used to decode or encode thefile. This should only be used in text mode. The default encoding isplatform dependent, but any encoding supported by Python can bepassed.  See the codecs module for the list of supported encodings.* encoding是用于解码或编码文件的编码的名称。 仅应在文本模式下使用。 默认编码取决于平台,但是可以支持Python支持的任何编码。 有关支持的编码列表,请参见编解码器模块。errors is an optional string that specifies how encoding errors are tobe handled---this argument should not be used in binary mode. Pass'strict' to raise a ValueError exception if there is an encoding error(the default of None has the same effect), or pass 'ignore' to ignoreerrors. (Note that ignoring encoding errors can lead to data loss.)See the documentation for codecs.register or run 'help(codecs.Codec)'for a list of the permitted encoding error strings.errors是一个可选字符串,它指定如何处理编码错误---不应在二进制模式下使用此参数。 如果存在编码错误(默认值为None具有相同的效果),则传递“ strict”以引发ValueError异常,或传递“ ignore”以忽略错误。 (请注意,忽略编码错误可能会导致数据丢失。)请参阅codecs.register的文档,或运行“ help(codecs.Codec)”以获取允许的编码错误字符串列表。newline controls how universal newlines works (it only applies to textmode). It can be None, '', '\n', '\r', and '\r\n'.  It works asfollows:newline控制通用换行符的工作方式(仅适用于文本模式)。 可以是“无”,“”,“ \ n”,“ \ r”和“ \ r \ n”。 它的工作方式如下* On input, if newline is None, universal newlines mode isenabled. Lines in the input can end in '\n', '\r', or '\r\n', andthese are translated into '\n' before being returned to thecaller. If it is '', universal newline mode is enabled, but lineendings are returned to the caller untranslated. If it has any ofthe other legal values, input lines are only terminated by the givenstring, and the line ending is returned to the caller untranslated.*在输入时,如果换行符为None,则启用通用换行符模式。 输入中的行可以以'\ n','\ r'或'\ r \ n'结尾,在返回给调用者之前,这些行会转换为'\ n'。 如果为”,则启用通用换行模式,但行结尾不翻译就返回给呼叫者。 如果它具有任何其他合法值,则输入行仅由给定的字符串终止,并且该行的末尾未经转换返回给调用方。* On output, if newline is None, any '\n' characters written aretranslated to the system default line separator, os.linesep. Ifnewline is '' or '\n', no translation takes place. If newline is anyof the other legal values, any '\n' characters written are translatedto the given string.*在输出中,如果换行符为None,则任何写入的'\ n'字符都将转换为系统默认的行分隔符os.linesep。 如果换行符是''或'\ n',则不会进行翻译。 如果换行符是其他任何合法值,则将写入的所有“ \ n”字符转换为给定的字符串。If closefd is False, the underlying file descriptor will be kept openwhen the file is closed. This does not work when a file name is givenand must be True in that case.如果closefd为False,则关闭文件时基础文件描述符将保持打开状态。 给定文件名时,此方法不起作用,在这种情况下必须为True。A custom opener can be used by passing a callable as *opener*. Theunderlying file descriptor for the file object is then obtained bycalling *opener* with (*file*, *flags*). *opener* must return an openfile descriptor (passing os.open as *opener* results in functionalitysimilar to passing None).可以通过将可调用对象传递为* opener *来使用自定义的opener。 然后通过使用(* file *,* flags *)调用* opener *获得文件对象的基础文件描述符。 * opener *必须返回打开文件描述符(将os.open作为* opener *传递,其功能类似于传递None)。open() returns a file object whose type depends on the mode, andthrough which the standard file operations such as reading and writingare performed. When open() is used to open a file in a text mode ('w','r', 'wt', 'rt', etc.), it returns a TextIOWrapper. When used to opena file in a binary mode, the returned class varies: in read binarymode, it returns a BufferedReader; in write binary and append binarymodes, it returns a BufferedWriter, and in read/write mode, it returnsa BufferedRandom.open()返回一个文件对象,其类型取决于模式,并通过该文件对象执行诸如读写之类的标准文件操作。 当使用open()以文本模式(“ w”,“ r”,“ wt”,“ rt”等)打开文件时,它将返回TextIOWrapper。 当用于以二进制模式打开文件时,返回的类有所不同:在读取二进制模式下,它返回BufferedReader; 在写二进制和追加二进制模式下,它返回BufferedWriter;在读/写模式下,它返回BufferedRandom。It is also possible to use a string or bytearray as a file for bothreading and writing. For strings StringIO can be used like a fileopened in a text mode, and for bytes a BytesIO can be used like a fileopened in a binary mode.也可以使用字符串或字节数组作为文件进行读取和写入。 对于字符串,可以将StringIO用作以文本模式打开的文件,而对于字节,可以将BytesIO用作以二进制模式打开的文件。"""pass

Dontla 20191030

貌似在使用’w+'模式对文件进行写读操作的时候(先写后读),读不出来东西。。。空白的
引用文章:day-2 python 文件读写模式r,r+,w,w+,a,a+的区别

Dontla 20200422

在看LabelImg代码的时候,发现程序会使用

def read(filename, default=None):try:with open(filename, 'rb') as f:return f.read()except:return default

二进制模式来读取图片数据

但是显示却是16进制的

python File 内置 open()方法(打开文件)相关推荐

  1. java文件指针,Java 测试文件指针,java测试指针,两种方法打开文件并进行内

    Java 测试文件指针,java测试指针,两种方法打开文件并进行内 两种方法打开文件并进行内容定位package com.ronsoft.books.nio.channels;import java. ...

  2. python通过内置的什么函数打开一个文件_利用python进行文件操作

    这篇文章主要介绍了如何利用python进行文件操作,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下 什么是文件 文件是系统存储区域的一个命名位置,用来存储一些信息,便于后续访问.能够在非 ...

  3. python_way,day3 集合、函数、三元运算、lambda、python的内置函数、字符转换、文件处理...

    python_way,day3 一.集合 二.函数 三.三元运算 四.lambda 五.python的内置函数 六.字符转换 七.文件处理 一.集合: 1.集合的特性: 特性:无序,不重复的序列 如果 ...

  4. python open找不到文件的原因_浅谈python在提示符下使用open打开文件失败的原因及解决方法...

    题目:在提示符下使用open打开一个文件 刚开始网上看了下打开的方式,结果一直实现不了,报错是没找到这个文件,而且和我输入的文件名不一样. 错误如下: >>>open('d:\456 ...

  5. python的内置字典数据类型_python 数据类型元组与字典内置方法

    1.元组 (1)元组是不可变的列表,能存多个值:如果多个值只有取得需求,没有改的需求,用元组最合理 (2)定义:在()内用逗号隔开,可以存任意类型的值 注意:当元组只有一个元素时,要在后面加逗号 # ...

  6. php 内容写入文件内容_PHP使用内置函数file_put_contents写入文件及追加内容的方法...

    本文实例讲述了PHP使用内置函数file_put_contents写入文件及追加内容的方法.分享给大家供大家参考,具体如下: 以追加形式写入内容 当设置 flags 参数值为 FILE_APPEND ...

  7. win8无法使用内置管理员账户打开的解决方法

    win8无法使用内置管理员账户打开的解决方法 win8启用administrator账户之后打开Metro程序总提示"win8无法使用内置管理员账户打开..." 在运行中输入:&q ...

  8. 全面讲解Python列表数组(三)列表数组类型的内置函数方法

    列表数组类型的内置函数方法 这里有一个列表 list1[1,2,3,4,1,5,6,7,8,9] 一, count() list1.count(1) 2 作用是计算列表一个元素出现的次数; 二. in ...

  9. python字典内置方法_柳小白Python学习笔记 12 内置方法之字典方法

    学习字典的时候只学习了最基本的字典定义和创建方式.今天再学习两种字典的创建方法及字典内置方法的使用. 现在春暖花开,所以我用花的元素创建了garden(花园)系列字典,字典的键是flowers(花名) ...

最新文章

  1. POJ 1195 Mobile phones(裸的二维树状数组)
  2. C++:05---命名空间
  3. stl algorithm -- sort ,unique
  4. XMPP扩展协议详解
  5. 系统架构师学习笔记-面向对象方法
  6. nginx php 书籍,详细介绍Nginx下ThinkPHP5的配置方法
  7. Java基础知识强化之集合框架笔记50:Map集合之Map集合的概述和特点
  8. MH370 找到个毛!
  9. python编译安装没有c扩展_pybind11—python C/C++扩展编译
  10. win7+VMware+Ubuntu16.04
  11. 中山大学计算机学院离散数学,《离散数学》课程习题与解答(2011级使用)中山大学计算机科学系_推荐.pdf...
  12. 芒果移动广告优化平台
  13. 浏览器兼容性及调试插件
  14. 应用程序正常初始化(0xc0150002)失败。请单击“确定”,终止应用程序
  15. 如何在oracle官网下载ojdbc8,想不想在maven里直接下载ojdbc这个jar?
  16. Sqlserver (优化Sqlserver数据库)页分裂 和填充因子
  17. MacOS下Git与GitHub
  18. AMB | 迈向可持续农业:根际微生物工程
  19. 【供应链架构day6】百世零售供应链架构之道:全渠道的落地与挑战
  20. java版b2b2c o2o 多租户多商家电子商务之(首页登录界面动态配置)SpringCloud SpringBoot Mybatis Uniapp 分布式商城源码 电子商务源码 社交电商 直播带货

热门文章

  1. centos7安装mysql8.0简书_CentOS7安装MySQL8.0图文教程
  2. 【ABAP】 汇票收款自动过账FM
  3. SAP HANA 三大特点
  4. GOS系列之删除附件
  5. SAP标准OK Code Values 列表
  6. 2020年财富金字塔出炉,你距离高净值还有多远?
  7. “智慧”校园为何难落地?北京理工大学有什么秘密“利器”?
  8. 玖富(NASDAQ:JFU) :2019年Q4机构资金占比增至79.8%,科技赋能业务成果显著
  9. 同级选择器_基础选择器
  10. java 句柄池_深入理解JVM之Java对象的创建、内存布局、访问定位详解