粉丝4219获赞1.7万

用 python 打开文件非常简单,我们只需要使用内置的欧本函数,然后传入两个参数,一个是文件所在的路径,另一个是文件的打开模式。文件路径可以是相对路径或绝对路径。 对路径这个概念还不了解的话,大家可以看一下我的上一个视频。文件的打开模式有很多种,常见的有只读模式,用字母二表示。在该模式下,我们只能读取文件中的内容,而不能对文件的内容进行修改。 如果在打开时文件不存在,那程序就会爆 file not found error 提示你 no such file or directory 没有这个文件。写入模式,用字母 w 表示。在该模式下,我们 可以往文件中写入内容。不过要注意,打开时文件中原有的内容会被删除掉。如果文件不存在的话,那程序就会自动创建一个新文件。如果不想删掉原有的文件内容,只想在已有内容后面添加新的内容, 那我们可以使用追加模式,用字母 a 表示。在该模式下打开文件后,我们可以直接在文件最后添加相应内容。 当然,如果文件不存在的话,程序就会创建一个新文件进行写入。如果想要让文件既可读又可写,我们可以使用 r w 加或者 a 加这三种模式, 区别是这样的,二加打开文件用于读写新内容,会插在文件的最前面。 w 加打开文件,用于读写文件,原有的内容会被删除。 a 加打开文件,用于读写新内容,会插在文件的最后面。在打开文件后,我们可以使用 read 函数读取文件内容,该函数会返回一个字符串, 或者可以用 right 函数往文件中写入内容,该函数接受一个字符创类型的参数。当然我们也可以调用 red lines 或者 right lines 进行读取或者写入, 前者会返回一个字符创列表,每一个元素表示文件中的一行文本,后者需要传入一个字符创列表进行写入。最后非常重要的一点是,在文件读写完毕之后,我们要调用 close 函数关闭文件对象 放系统资源。文件对象被关闭之后,我们就不能再进行读取或者写入的操作了。现在我们来编写一些视力代码,在拍传中新建一个 a 点 txt 文件,然后随便写入一些内容, 接着编写程序,先用指读模式打开这个文件 运行程序后,控制台就会打印出文件中的内容了。如果我们把 read 改成 red line 函数,那控制台会显示一个字符串列表,每一个元素表示文件中的一行文本。因为目前 a 点 t x t 文件中只有一行文本,所以列表中只有一个元素。再用追加模式打开,然后写入一些字符创 运行程序后,我们打开 a 点 t x t 文件,可以发现一二三被写进去了,而且是写在文件的最后面。最后我们用写入模式调用 right line 函数并传入一个字符串列表 运行程序后,打开 a 点 t x t 文件,我们可以看到文件内容是乱码的,这是因为我们写入了中文,这跟编码有关,我会在之后的视频中讲解。大家这里就可以先点击 reload in g b k 按钮,让文本正常显示。 此时我们可以看到文件原内容被删除掉了,并且字符创列表中的每个元素都被写入了,然而每一个元素并没有独占一行。在使用 right line 函数时,如果我们想让每一个字符创元素单独占一行,需要自己加上换行符。比如这样, in 新程序后,就可以看到每个字符创业元素都单独占一行了。针对二加、 w 加和 a 加这三种读写模式,大家可以自己动手验证一下。那有关拍等文件操作的介绍就到这,我们下期再见。

各位好,我是阿杰,我们接着来看一下拍审常见数据类型中的最后一个文件,文件是拍审编程之中来处理你电脑文件的一个接口,他跟其他的数据类型不一样,不一样在于他不是像其他数据类型一样有一个字面量去表示,而是他 有自己的一种方式,使用内置的一个 open 函数来创建一个对象,这个对象在对文件进行操作,那我们常见的使用方式就是 open 里面有三个参数, 这三个参数 fail 是指示文件, mod 是模式, incoding 是编码。但是呢,实际上 open 这个函数有依然串儿很多的这个参数,今天我们来详细的去解释一下,究竟这个参数各个都有什么的意义,尽管很多参数我们用不到,所以呢,今天 就没有代码的演示,我们走把这些参数过一遍,其实就要花了不短的时间了。第一个就是刚才所说的 fail, 它这个必须的参数,它是个字符串, 目的就是给 open 这个函数指示要对哪个文件进行操作。如果你所处的文件跟当前的编码的这个代码是在同一个工作目录里边,那么就只用文件名就行了,不然的话最好是给出绝对路径来指出你这个文件在哪里, 防止你程序在部署的时候会出现一些路径找不到啊这样那样的错误问题。第二个参数就是很多时候我们容易搞迷魂的 mod, 它是指文件打开的模式 mod, 这个一共有七种模式,但是呢,很多时候我们并不是说完全去接触它,尤其是我们在没有使用二音质的时候, 就不太容易去考虑二进制的模式,那么第一种是 r 的读取模式,这个是默认的,也就是说木的里边这个参数你不指定,他默认的就是 r 模式。第二是 t 文本就是读取重文本的文件,或者是写入重文本的文件,这个两个是默认的模式。 实际上如果我们不指定 mod, 这两个模式是默认存在的,接下来是写入和追加,写入是直接写文件,但是他跟追加是有区别的。如果你文件中已经有有内容了,那么 w 这个模式会直接把里面内容清除,然后重新往里面写。 如果你要处理二定制,比如说什么音乐文件呢?或者说并不是纯文本的,都算是二定制啊,那个时候要注意要加上 b 这几种模式并不是单纯来使用的,实际上我们 在使用过程中,他是可以任意组合的,但这个组合是有点前提啊,我们其实每次所用的时候他都是一个组合。很多情况下,我们比如说你单独用 r 或 w, 或者 a 或者 x, 实际上他后面都附带了一个 t, 除非你明显的指出是个二进制的 b 的模式 啊,否则我们前面的使用你只是使用单个字母,他其实也就是一个符合模式。这些组合的模式,我们在实际使用的过程中,根据你自己的需要来组合的使用一定要使用正确,使用错误还是会有报错的情况的。 接下来的参数是 buffering, 这个是一个设置缓冲策略,默认的它是一个负数,这是表示由系统默认的使用缓冲策略。这个使用的缓冲策略一般我们是不变的,这 we need 有 特殊的应用,比如说设成为零就表示不使用缓冲,这个时候对于实时交互或者是低延迟这样的敏感场合去使用,这个可以去试一下, 但是他也有降低整体 i o 的这种缺点。另外需要注意的就是设置成一和真实成大于一的数字,他们是有区别的,如果设成一是对于文本文件来说表示行缓冲, 而对二进制来说,如果你设成一,跟这个上面那个大于一的数字是一样的,所谓大于一的数字就是你自己去设置这个环中区的大小, 这个呢,嗯,一定不要写错了,比如说我们实际上是想开启航缓冲,但是写了个二,那么这个缓冲区就变成了市值缓冲区,大小两次结,这个就非常小了, 所以一般情况下是建议使用负数,就是负一,就不要去设置了就可以了。 including 也是一个比较常用的参数。用指定文件的编码,大多数我们在读取或者写入 啊文本文件的时候就使用,因为在写入或者是读书的时候会可能遇到各种不同的文件编码以及操作系统的编码,容易造成文件乱码,这个时候 incording 就用派上用场了。尤其是在中文的环境下边,那我们常用的编码就是 uf 八 gbk 和 gb 二三幺二三种, 那这两种可能是最常用的,因为它包含在我们所使用的中文的环境下边,兼容性会比较好的。 aeros 用来指定当我们进行编码解码的时候,文件出现错误的时候,你怎么去进行操作?第一个是 严格模式默认的,如果听到编码解码错误时会引发一个异常,但是这种编码解码的错误是一种致命的错误的时候会引发一个异常。 igri 的表示忽略所有的编码解码错误,这个时候你可能看到的文本文件里面是个空字符, replace 则是为替代,通常这个替代的不能解码的这个字符会变成个问号。一般不要设成 igree, 因为这个选项会造成你程序即使有错或者发生了问题,也不容易发现,因为他没有报错。 ulin 也是一个不是很常用的一个,因为大多数人不去设置这个,因为他的默认是那,那的意思就是跟你的平台的不同,他自动的进行处理,尤其是画行符。我们知道在 windows 和 linux 里,这两个系统里边,他的画行符是不大一样的,不同的画行符所输入 出的文本文件可能在读取的时候程序会出错,这个有些做程序编程的人会知道,就是我们在 windows 下编程的程序文件可能会拿了 next 边运行不了会报错,或者说产生不能识别的问题,或者是控屏白屏这样的问题。 原因就是换行服不太一样,那如果生成乱,就可以根据不同的平台自动的去进行处理,那其他的我这里就不详述了,可以看一下这个每个设置会产生的后果,然后根据自己所需要的不同来进行掌握就行了。 最后是两个特别不常用的参数,一个是 class 的,一个是 opener class 的。很多 zlog 里边都说的比较抽象,比如就像这里的说是指定是否在关闭文件的时候也关闭底层的文件描述符,但是究竟是个什么样 的都没有说的很清楚。我个人的理解就是当你使用操作系统底层的方式去引用一个文件,比如说你用 os 点 open 去打开一个文件的时候,再去使用排成里面的 open 函数去打开, 那个时候就相当于这个文件描述符是否关闭的问题了。默认是处的意思就是当呃你关闭牌粉中引用的这个 open 文件对象的时候,那个引用的底层的 os 点 open 的那个文件也会被同时的关闭,那个引用也会被同时的关闭, 反之易燃。但一般是不要设置成 false, 除非你知道要手动去关闭。而 openner 的简单意思就是你可以去自己设置一个打开的方式,通常是用打开的二键制啊或者打开的文本文件。但是比如说我们要使用爬虫,那么你可以使用 openner 自己设置一个爬充去打开网络上面的某一个网页,但是通常我们都不用这样做,也不需要这样做,所以通常 openner 和 class 的都采用默认的方式来进行设置就可以了,除非你知道他怎么用,已经用了什么样的场景。 还是那句话,我们在日常使用 open 的时候,大多数使用 fail mode 和 incoding 就可以了,更多的参数尽管使用不到或者很少使用,我们需要了解它的使用方式,以免在遇到的时候不太明白。

派三人函数默认返回难的原因是为了确保函数始终有返回值。在派三人中,如果函数没有显示的指定返回值,则函数默认返回难。 这样设计的原因是为了避免潜在的错误或不确定性。如果函数没有返回值,那么在调用该函数后,可能会导致后续的代码出现错误或逻辑混乱。通过默认返回呢?可以确保函数总是有一个返回值,即使没有显示指定。 此外,那人在拍份中被视为一个特殊的对象,表示空值或缺失值。他可以用于判断函数是否有返回值,或者用做函数的占位符。 在函数中,你可以根据具体需求使用条件语句来判断返回那的情况,并进行相的处理。需要注意的是,如果你希望函数返回其他特定的值,你可以使用 return 语句显示的指定返回值。例如,可以使用 return 语句返回一个具体的数值是否串获其他对象。


一分钟学会一个盘词之年,今天我们来介绍一下拍词中函数的返回值,在函数中呢,我们使用里特关键字将这个函数运行的结果返回给他的调用值。函数必须要有返回值吗? 上盖子啊,这里我们定义了一个函数,他有一个返回值 content, 我们直接在函数内部可以使用这个 content 变量,但是如果我们把它放到函数外面以后, 大家就会发现这个变量已经无法使用了,因为他在函数内部是局部变量,而拿到外面以后就变成了全局变量,这个时候呢,就找不到他变量值。 所以呢,为了能够使用函数中产生的结果,这个时候我们会使用雷特恩把这个结果返回去。返回给谁了呢?返回给他的调用者,所以在这里我们直接来接受一下这个 result, 此时我们就可以在全 局环境下使用这个 recept 了,也就是这个函数产生的结果。这就是为什么我们要使用 reten 进行返回,还想学习什么牌子知识点?评论区里告诉我。

今天我们来学习 python 函数的参数和返回值。我们先来学习函数的参数,首先,参数的位置,它是在函数名后面的括号内,并且参数数量不限,如果有多个参数的话,我们就使用逗号风格。 其次,参数的种类,参数分为时餐和行餐两种。时餐就是在调用函数时用来传递数据的参数值,它是一个实实在在的数据,比如数字一,数字三十。 行参就是在定义函数时用来接收外部数据的参数,譬如说 age, number, name 都是。行参的作用有两个,第一个它是在调用函数时, 根据函数定义的参数的顺序,通过参数来传递数据。第二个是在函数内部将参数当成变量使用。 接下来我们来看一个实力两数字求和。首先我们来定一个函数,命名为 number some, 在括号内传入两个型参,分别为 number 一和 number 二。 接着我们在函数内部生命一个变量 result, 用来接收两个变量相加的和。接着我们再使用一个 prior 语句,用来输出运算结果。 定完函数之后,我们就开始使用函数名括号来调用函数。在括号内,我们传入两个时餐,分别为数字一和数字二。运行结果我们可以看到 输出了,成功输出了,结果为数字三。学习完函数的参数之后,我们来学习函数的返回值。 返回值简单来说就是为了方便函数参与二次计算。因而我们在函数内部不使用 pray 语句输出运算结果,而是将函数内部的结果进行一个返回输出传递到函数外部, 所以函数它是通过返回值与外界交流的。在 python 中我们就使用 return 关键词用来返回结果。它的使用方式, 第一步,在函数内部使用 return 返回值。第二步,调用函数时,使用一个变量来接收函数的返回结果。接下来我们来看一个 比例还是两个数字相加。首先我们定一个函数,在函数内部对 number 一和 number 二两个时餐进行一个相加,使用变量瑞造进行接收。在这里的话我就不使用 bring 语句进行一个打印输出了。 接下来我们调用函数传入时参数字三和数字二。在这里的话,我在外面增加了一个 pro 语句,用来输出运行程序。我们可以发现控制台输出了结果维纳 这里的 not 表示空,没有值的意思,这是为什么呢?这是因为当函数被调用执行函 d f 函数时,虽然在 d f 函数内部有运行结果,但是我们没有使用 pray 语句进行一个输出。 并且由于在函数内部它是不会和外面的代码进行一个交流的,所以函数外部也不会清楚运算结果,所以控制台的话它就什么都没有输出。 那我们要是想在函数外部知道运算结果的话,那该如何做呢? 我们就可以使用刚刚学习的 return 关键字将函数内部的运算结果传递到函数的外部。第一步,我们就在函数内部添加上 return 返回值,也就是我们的变量 resort。 接着我们在调用函数这边生命一个变量进行接收, 那这里我们运算结果可以看到成功输出的数字三。在这里我们还需要注意一点,在函数内部有一个 和 brain 语句,但是在控制台时他并没有被输出,这是因为 return 他表示返回的意思,他后面的代码是不会被执行的。