00:00
啊,来说一个比较大的事啊,第一个事就是这个,我这个文件名叫歌姬,叫歌姬,你们很多人在外面去创建,或者在别的地方创建,你习惯性创建这样的东西,比方说我来一个太白点TST,咱们大家是不是很多都是就文本对不对,不是这样的,那写个什么呢?太白很白,特别白啊,这个时候你们在去文件操作的时候,比方说我想读这个太白点TT,很多人写个太白,这个是不对的,这个是不对的,为什么不对,你的文件名是文件名加上后缀名一起,这是整个文件的名字,知道吧,所以这时候你直接太白,这个是不对的,他会告诉你没有啊,没有,为啥没有呢?你缺了一个点TT啊,缺了一个点TXT,那这个时候你读,哎,这个是有的啊,这个是有的,所以这个文件名这块说的是很多的啊,说的是很多的,就目前。
01:01
我写这个程序而言,我是在我当前这个文件夹看好了,我这个PY文件和我的目标文件是不是在一起的,在一个文件夹里面,所以我可以直接用文件名字去访问就可以了,但是有些情况下,有些情况下我们这个文件呢,它不一定在这,它不一定在这,对吧,它可能会在别的地方,比方说我新建一个director叫什么叫file,叫file,我在这里面新建个文件,比方说新建一个呃五色啊,就这么一个文件,五色还行啊,好了,写这么一个东西,那么这个时候兄弟们,我想从这个我的这个文文件操作杠好2.py,从这个位置我想找到这里面的东西,你看我刚才操作我是不是在这,我得双击点进去我才能找到它,是吧,所以我得先进到这文件夹里边去才能找到它,对不对,所以这个时候你会发现,诶,我。
02:01
在当前这个目录里面,在当前这个目录里面并没有五色那个文件,那么我得进到当前文件里面的file这个文件,然后再进去,然后再进去,所以我的文件路径必须写什么,必须写什么,是不是来到先进到file里面去,那file里面我进哪告诉进哪找谁是不是找五色了对吧,所以杠后面跟谁五色,这样我才能读到那个文件,这样我才能读到文件,所以这里面涉及到一个相对路径的问题,相对路径的问题到未来你们学到,诶天聊的时候还会再提这样的这个相对路径问题,这个问题非常的麻烦,非常的麻烦,很多人写了很长时间,到最后这个路径还是搞不懂啊,还是搞不懂,看好了。径分成两种来径有两种,第一种叫相对径,可以你们是吧,你看第一个叫相对路径,第二个叫绝对路径,那先说相对路径,相对路径就是相对于你当前这个程序所在的文件夹,发到走在那啊看这相对于你当程序,诶当前程序所在的文件夹啊,它到底在哪里,就好比说我现在这个文件操作在这呢,那所有的文件都应该是在当前这个文件夹的基础上,哎,你去寻找到底怎么找对吧?那么接下来看好了,我右键再新建一个directory,我们叫它,比方说呃,PY啊叫它PY在这里面又建新建一个程序,比方说。
03:48
我们叫它文件操作啊,来个文件操作,那么在这看好了,我想在PY这个文件夹里面的这里面去读到file里面的五色,我应该怎么办?
04:01
我应该怎么办,我是不是得从这个文件操作里面,我现在是不是在P文件里呢?我的眼界是不是只有P文件里边的东西,对不对,那我怎么办,我是不是得出来,这得出来,出来之后是不是到这什么D08里面了,对不对,在D08里面我进哪去,我是不是进到file里面去,然后才能找到五色对吧?所以我的路径找应该这么找,F等于open,这时候我首先得从当前的这个PY文件夹里面先出去,怎么出去叫点点杠点杠,点点杠,点点杠叫上一层文件夹,叫上一层文件夹,这个相当于咱们Windows里面这个东西后退不是后退,这个没有的,叉P里面有,叉P里面有,就是咱这不是有后推跟前进,知道吧,然后旁边不是还有一个向上那个箭头,你们见过吧,有向就那个东西,就那个东西上一层文险夹,上一层文险夹就是后。
05:01
后后退啊后退,那么这个点点杠代表的是上一层文件夹啊,我这没法演示,这个点点杠表示上一层文件夹,上一层文件夹,那如果说这里面再来一层看见啊,再来一层文件夹叫什么呢?叫叫那把它扔到这里面去啊,我把我的程序挪到里面去了,我现在想读到五色,我是不是得从这里面,从里面出到进到P里面去,从PI再出哪去,是不是出到D08里面去,然后再进哪就里面去是不是,所以现在我要往退几层,退两层,退两层怎么写,一层是零点杠,两层呢,接着2.2直就往上退两层,往上退两层,退两层之后我要进哪去,现在倒哪了,放哪了,零八了,零八进哪去,是不是进来,接着写进到file里面去,你看到吧,就写文件名,行了,就写文件名了,然后后面该谁了,无色后面就是无色,这是我要读的那个文件,这个就是我要读的那个文件看。
06:01
这再跟一下啊,我当前是在这的,当前是在这儿的,我得从我现在眼界只有这个文件夹,我想出去我必须得往上,上一层进到PY,就第一层在这杠进到PY,然后再往上一层,再往上一层到哪了,是不是D08了,D08里面是不是就有file了,我就能找到file了,对不对,所以我去找谁呢?找到file,然后再找谁呢?找这里面的做啊,咱不做,这个是相对路径,这种路径在LTML里面非常常见,非常常见啊,到处都有,所以这些东西早知道早好啊,然后下面我们还要打开文件,还要给啥来着。啥的是对吧,等于谁呢?等于R,然后呢,再来一个谁codingcoding,这个coding它不单单只是说啊编码或者怎么着的,知道吧,咱们讲引扣的时候,编码的意思嘛,对吧,他在读的时候,读的时候是把二进制那些东西给你变成咱们看到的文字,对不对,这是什么?解码,这个是解码,当你们往外写的时候,这个是编码,所以这个引口顶呢,就说白了,你操作的这个,呃,怎么讲编码集是什么,我们写个UTL8就可以了,在PYTHON3里面,在PYTHON3里面如果你用的是R,并且是UTL8的话,后面这个完全就可以不写,因为这两个是默认值,这两个是默认值啊,也就可以不写,然后往下我们拿到这个东西之后,接下来用文件就可以去读了,f.read read读出来的东西我们交给一个变量来接,啊,变量来接,这时候我就可以去打印这个。
07:41
变量,最后我总忘了F点啊走你。啊,五色还行,是这个东法对吧,这种可以读到,所以这是第一种叫相对路形啊,相对路径还有一种给你们介绍一下,但是呢,不重要,也别去抠,去绝对路径,绝对路径这个东西啊,就比较烦了,比较烦了,它第一种叫什么呢?它分成两种,第一种就是我们我们磁盘的根目录开始一层层找,从磁盘根目录寻找,就比如说盘,D盘下的某个文件夹上的某个文件,懂啥意思吧,就这样,D盘是根步骤,这是第一种,这种啊,这是绝对不,第二种叫啥呢?叫互联网,互互联网,互联网上的一个绝对路径,比方说很难你们没有人去注意过这个东西。
08:38
来我们找一个百度点。com。有百度图,点百度点看看。来搜索美女。打得多溜什么鬼,这个这不来也行,长,然后接下来我可以右键干嘛呢?去找这个图片,复制图片地址,看这了吗?有能复制图片地址来,我在这个地方粘贴这个文件地址,这个文件地址是通过LTDB协议找到互联网上的某一台服务器,某台服务器上它的一张图片,某台服务器上的一张图片来导引,看这就是那张图,这就是那张图,所以这个路径你也可以管它叫角对路径,你也可以叫它是角色路径,因为从互联网的根目,从那整个互联网上去找的啊,去找的,所以第二种就是互联网上的一个绝对路径,什么视频呐,什片呐,什么你未来学的什么CSSGS,都有可能是从互联网上拿到的一个路径,都有可能是这样啊。好了,这个就介绍一下就可以了,你们到学前端的时候,你们再去深抠这东西去啊,相对路径要求你必须掌握诶。
09:51
相对路径要求你必须掌握啊,必须掌握为什么要用相对路径而少用绝对路径,我给你举个例子啊,举个例子,比方说你现在有一个小偏片啊,小偏片在你的D盘的某个文件夹下啊,假如说举个例子啊,你D盘现在有这么个文言家,叫D盘下的,叫video下的学习啊康老师点avi好了,现在有这么一个东西,然后你通过你的程序去读它,或者说你的程序现在用到了这个文件,你的程序用到这个文件,那你里面肯定是在这块要读那个文件,对不对?所以你如果用决定路径的话,你肯定这么来,你定这么来是吧,然后程序写完了啊,很完美,运行起来非常的OK,这个时候这个候你要把你的文件,把你的程序,把你的这个程序,你是不是写完了之后要提交上去,对不对,给整个。
10:51
的团队啊,或者给别人去用,那么这个时候你想想,你把你写好的代码,直接,假如说我发给大洋哥,让大洋哥去使用,那我问你大洋哥的地盘里面一定会有这个东西吗?不一定,是不是不一定啊,是不是不一定啊,所以我还要干嘛呢?哎,我首先把程序给大洋哥,我同时还要,哎,把这个苍老师点avi给大洋哥,并且不停的嘱咐他,你一定要给我放在这个位置,我才能读得到,是不是这样,是不是这样,就这路径对吧,所以你在给人程序的时候就会很麻烦,就会很麻烦,那怎么办?不麻烦,用相对路径就不麻烦,看着没啊,假如说我现在对刚才那个东西叫做点点杠,点点杠是file里面的五色,我去找这个文件,那么这个时候我说大然哥朝我要东西一样,我也要把这个文件给他,我也要给他这个东西,但是我是不是可以把整个项目不是拷给他,不是拷给他。我把整个。
11:51
他拷给他D08拷给他,我问你这个路径是不是还在,这文件是不是还在这对不对,你现在这个VI文件是不是还在这对不对,相对来说是不是就没有空,对是不是没有动,所以你以后写程序用什么,用什么路径,相对路啊,相对路径,所以这些东西啊比较重要,相对路径必须要掌握,你要掌握东西,第一个叫啥呢?叫在这个这方上返回上一层目录啊,返回上一层目录来返回上一层目录,然后再往下,你相对的是谁,这个一定要明确,你相对的是谁,当前当前哎对相对的的是当前什么呀,程序所在的文件夹,当前程序所在的文件相对于这里啊,相对说白了,咱们在这个屋子里面,咱们在这个屋子里面,咱们在一个文件夹里面,在一个文件夹里面,我说大洋哥不是他就出来了,我说那个那个振宇不。
12:51
这雨就出来了,对吧,我说谁不谁就就出来了,直接喊名字就可以了,对吧?在一个屋子里面,但是我现在想喊隔壁金老板怎么喊,我直接喊,喊过到喉咙,他也没必能理我,对不对,所以我得从这屋里出去,然后进到他那屋里面去,是不是在喊,对不对,这就是现实中的两个看两个不同的文件家想互相找的时候,那我得先从我这出去,然后进他们那边去,再去喊,他能听懂吧,这个就是我们的相对路径啊,相对路径OK,这个点说完了之后,我们接下来说一下写操作啊,写操作那么在写之前先看一下我们现在用的是读,那么我尝试着用读的模式,我往里面去写,你看看什么效果啊,首先确定我现在这个程序能用我查。
13:43
右对不对不对,二零不是,我现在是零三对吧,零三里面我得进到才能看见五色,所以直接进五色就好了出来。
14:01
是吧,现在是可以用的,然后兄弟们看好了,现在啊,现在我尝试着我的读,现在可以用,我尝试着把这个读啊先给它注掉,然后呢,F点读是read,写是啥right对吧,往外写,写个谁呢?写个大两个好了,这个打印没有了啊,这个打印没有了,这个时候你看好了。翻译翻译意思不能写别的不认识uned什么不支持是吧?不支什么呢?Notable not readable,不支持什么写对吧?混合写,说白了你只能读,因为你是R,你是R,你只能读,这个权限很小,权限很小,只读啊,只读好了,只读完了之后我们来看写。啊,这个是错的啊,这是错的,干掉它还回来。
15:06
哎。零四啊,叫文件操作杠W啊来只写的话,我们先来一个F,等于open打开一个文件,比方说我重新弄一个文件吧,别,别重新弄了,随便写个文件名,比方说叫。呃,小故事什么什么什么模特点TST,别TST了就差直它了,然后后面跟个Mo等于W,然后引coding,这个时候是UTF-八来兄弟们,这个时候我是往外写,我是把字符串数变成二进制的东西吧,这是编码还是解码,编码,这个是编码,这个是编码,因为我们是普通字符串的东西,想把它输出出去,对变成二进制,然后f.right看尝试着写一下,比方说写个或是大白离啊,写个大白离,然后f.close关掉啊就可以了,来试一下,先不说看这运行一下,首先我这个文件有没有没有来在读的模式下,如果这文件没有是不是报错对吧,在写,你看一下报没报错,没报错,也就说在写的时候那个文件可以没有并。
16:29
这里是不是创建了一个文件是吧?小或者模特打开里面什么呢?大白里OK的对吧?这个就是我们的往外写的这个操作,那么写的话兄弟们写的话这个地方最好你在写之前可close之前来一个flash刷新,刷新它是一个管道,它是一个管道,我们要刷新管道,就好比说我们,呃就就就就拿个管子吧,就拿管子吧,我现在有根管子很长,从我这往我对面那哥们呢啊给它传输信息,发送信息,比方说我给它灌水啊,我给它灌水,我给他灌水,我把那管子扔过去之后,我从这面往里面添水,水是通过管子流下去,对不对,当我添完了水之后,假如说我一桶水都灌进去了,都灌去了,灌完了之后,我想关的时候,你管子里面是不是有可能会残余一些水,是不是,那怎么办呢?我拿了劈开的是吧?啪,给它捅过去对不对,捅过去把那个管道里面的水是不是给它清空了,最。
17:29
好了对不对,但是有些情况下,如果管道很短的话,其实是没有残余的,或者说你这个坡度很大的时候,直接就流下去了,对不对,所以这flash也是属于一种好的习惯,一种习惯性东西,你可以强行的把你的管道东西推过去啊,推过去这是flash在这里的作用啊作用好了,这个地方写操作就完了,就完了,这个你看它写法代码跟刚才那个是不是一样的,换了什么东西,模式换了个模式,还换了个什么。
18:00
有个多了个flash,多了个right对不对,刚才是read,现在是right啊好了,把这个写去给我写一下啊,去写一下快速的把它完成啊。来看着在W模式下,我现在有了小护士模特对吧?看着小护士模特里面写的是大白梨,那么接下来我想往这里面去写啥呢?换了个东西啊换个东西,比方说刚才有人说这什么杜十娘啊,我想往里边写杜十娘,那看一下什么效果,附近运行程序运行是没有问题的,对吧?正常的运行完了,但是我们看一下小护士模特覆盖了大白移送没了都没了,记着只要看见了W,只要看见了W,你往里面写东西,他就会把前面的给你干掉,把前面的给你干掉啊,比方说我现在往这里面随便来点啊,比方说啊娃哈哈哈哈哈哈哈哈对吧。
19:04
然后往里面写个杜十娘运行一下啊,正常进去小护士模特也变成杜十娘,是不是全清了对不对,所以这一块W模式,W模式往里面写东西的话,会有一个问题,它会把原来的干嘛抹掉,然后往里面去写入新的东西啊这些东西好了,这是W模式,它有这样一个问题啊,写入之前会清掉原来的内容啊,清掉原来的内容这个特性,只要见到W都有这坑,只要见到W都有这坑,好了,W说到这儿啊,说到这儿W完了该谁了?零五的文件操作杠A-AA叫a panda啊a panda写法一样,Open打开,打开的是小护士模特,然后来个Mo等于A,然后来一个encoding等于udf-八,这都能看到了,我现在好了,现在用的是A模式,A叫啥来着?追加对吧?看一下追加是怎么个加法,来F点往里面写,听啊,追加表示的是写,是写往里面添加东西,不是读啊,往里面写,比方说我写一个写个谁呢?小龙女吧啊小龙女,然后f. plusf.close啊,格式都一样,都一样,就换了一个字母,把W给我换成了A,那么现在我的小护士模特里面现在是杜十娘对吧,记住了啊,杜十娘。
20:52
啊,娘娘走,你正常的能够执行完毕对吧?然后我们看一下小护士模特点开杜士娘后面追加了小龙女,它是什么概念,追加追加它能不会清原来的东西没有,也就是说a pen or a这个模式它不会清掉原来东西,是在原来的基础上追加内容啊,在原来的基础上进行追加内容,也就是说我们写东西是直接写在文件的末尾,是直接写在文件的末尾啊好了,这个A模式就讲完了,这个简单吗?这个是不是跟刚才怎么大r wa是不是差不多些吧,不对不对,整个的逻辑都是差不多的啊,差不多的,但是你要会挑,你要写的时候你要用哪个,你要读的时候你要用哪个啊,你要追加的时候用哪个,这个你要分开啊,要分开,好了这三种基属。
21:52
模式说完了,那么接下来我们来介绍第后面的一种啊,我们来一个这个东西,文件操作零六叫文件操作叫什么呢?叫RB,叫RB模式带了个BR是什么意思,读呢,不太好理解,叫叫啥意思呢?字节吧,对吧?字节也就是说我们可以直接把字去写入文件,或者从文件里面读出字,读出字节,RB嘛,是读对吧?来来个F等于open来随便打开一个,比方说叫呃,刚才那个小护士模特,然后后面来一个Mo。
22:44
Mode等于RB,然后里面是encoding,往外拿的是u TF sorry,这个encoding没有用,这个encoding没有用,因为你直接读的就是什么字节就是字节,它没有所谓的解码的过程,所以现在我直接从F点看着f.read的读,读出来的东西它是字节,来,我们来个BS,等于它去打印一下这个BS,然后f.close啊走,你运行一下,看读到的这东西熟不?这什么玩意什么玩意BY直接是字,直接是字节,那么这种东西听吗?读字节,那我还是不是还可以干嘛呢?写字节对不对?那写字节的时候,我就把一句话给它编码成某某某字节,然后再写出去是不是也可以啊,对吧?所以这里面读字。
23:44
节RB模式读出来的直接就是字节,读取的内容直接就是字节,那么我现在读到的这个字节,我想把这个字节给我还原成字符串,怎么还原,还原成字符串怎么还原,点什么抵扣,记着吧,抵扣的把这个字节是还原回我们的正常的文字,对吧?那这个东西怎么拼码UTF-八,为啥UTL8,因为我写那文件就是UTL8对不对?读出来的东西肯定直接就是UTF8的BAS类型,我把UTL8的BAS给我转换成文字,那你需要用UTL8进行解码,那么这时候打印一下。
24:34
啊,都是两小龙女,是我原来的东西吧,是吧,好了这是RBRB啊这个需要解码,那么咱们看一下跟它不一样的叫做WB叫什么呢。零七啊,文件操作杠WB啊,写法跟那个一模一样,我就粘了,好吧,偷个懒啊,偷个懒,给我个机会WBWB我是不是要刚才往外写了,对不对,不能读了,那往外写的话怎么写啊,怎么写是不是f.right对吧?往外写写的话,兄弟们看着我直接来个字符串,你好啊,这能写出去吗?写不出去为啥不能写,它是零,我写的什么?看这这有个B什么意思字节,也就是说我现在一运行是不是报错了,要的必须是什么,是不是盖类型东西,而不是你给我的这个字符串,所以我需要把这字符串干嘛,是不是引扣的解码编码,编码是什么?UTF-八啊,编码之后你再往外走看,这直接写出去,程序没有报错,但是你想想我这一编码写出去的是不是。
25:50
就相当于类的东西,那在咱们Python里面长什么呀,是不是个B呀,然后单引号杠叉,杠叉是不是这东西,但是你要考虑我把这个东西写到文件里面去之后,写到文件里面之后,我是不是通过按照u po吧的形式写进去的,对不对,那我拍差在读这些个文件的时候,是不是相当于把那些东西又还原回我们的字串了,对不对?所以你在打开小护士模特的时候,你会发现你好啊,显示没有问题,显示没有问题,因为我们写出去直接就是字节,字节在拍上里面,它一打开,因为天L8的格式打开就是汉字,就是文字啊,所以这个写的话,你写出去兄弟们,你看似可能是啥呢?可能是这个字节,但是那边一打开就是汉字啊,就是汉字好了,覆盖这两个这都盖掉了,覆盖只要见到W,只要见到W都盖掉,都干掉啊来。
26:49
问你WB跟RB在使用的时候,你想想跟R跟W,看着R和W这两个东西与与谁呢?与我们的刚才学的WB还有什么呢?RB之间。
27:06
你会选择用哪个?肯定全,如果他来就目前我们所学了解的而言,是不是肯定是前面这个东西,为啥你后面这还得编码解码对不对,很麻烦很烦对不对,你前面这个值径由这个open函数把你搞定了,对吧?那么在什么情况下回用到它们呢?F加密的啊,传输传输啊。那我告诉你,你们打开的文件一定是文本吗?不是一定是文本的,兄弟们来,我问你,你打开这种文本,OK,你用R用W是不是很方便对不对,直接解码编码就完了,但是你现在能打开一个视频。打开一个视频,你能给他解码吗?能解码吗?兄弟们,能吗?解不了懂啥意思吧,你打开一个图片,你把它给我翻译成汉字能吗?不能,所以你这个东西,这个东西里面这两个玩意儿是根据给谁用的文本,这俩玩意呢,是不是非文本呢?对吧?你未来要操作的东西可不一定全是文本呐,比方说大家看什么优酷视频,看看优酷视频。
28:29
我视频视频看不看,电影看不看,看看看这玩意是啥,是不是都能拿这个东西来读对不对,你拿这玩意读得了吗?读不了啊读不了,所以这个东西切记切记啊,前面这个B带B的,带B的处理的是什么呢?非文本处理的是非文本的东西,非文本就是抛开文本,你要用这个啊,用这个你如果是文本就乖乖的用WR啊,也简单也方便好了,这个东西就说到这,那么还有一个对应的叫ABAABBAB啥意思意思在后面追加对不对?来我给他换一下啊,这是你好啊,换一下什么呢?叫你不好。
29:17
运行看到没正常能够停止,正常能够完事,看一下我的文件小户士模特看你好啊,你不好注意下吧,对吧,所以这里面兄弟们,这里面你要注意这个A加还有W加,还有什么什么啊,不是ABWBRB这种东西都是处理非文本的就可以啊,它跟前面的是一样的,WR还有AB,这个是WBRB还有AB啊,就带个文本,这个B表示的是文,这个这个字节啊字节BY,好了这一块咱就基本上就说到这啊,就说到这,然后接下来咱们开始介绍啊,其他的这个操作,我们现在看到的操作都是单一操作,比方说RR是干嘛的,读W呢,写A呢,注意下来我在读的模式下能不能写,现在不能对不对,但是有些情况下,我可能会对个文件又读又写的,对不对,就来回这进行操作,所以我们。
30:18
这涉及到了一个新的东西,叫R加,这个要求你必须掌握,叫文件操作,告诉什么呢?R加,对啊,叫R加,那么我们来一个文件,F等于F。等于open一样啊,格式一样,我们叫它老师点名吧,啊老师点名,然后来一个model叫R加R加,然后呢,Encoding等于呵呵呵呵,脑子有点迷了,有点迷了往下走,接下来我是用R加来进行,怎么办呢?进行打开的这个文件,那我先来一个这个文件,对啊,来一个这个文件右建,新建一个file,叫老师点名,我现在知道的几个人名啊,谁道大洋哥是吧,大洋哥哎,振宇啊,再来个叫毛尖妹妹小微啊微好了啊,来这么几个东西,然后接下来我到我的文件里面去往外读,先读后写。
31:33
先读后写,来f.read read来读一下,比方说S等于它,我们看一下这个S是什么东西啊,看一下S什么东西,f.close现在我看看能不能读,能读吧,对吧,读完了之后看着啊,在之前的学习里面,R是只读,但是现在R加是在只读的基础上进行了扩展,进行了扩展,你可千万不要以为这个家是W加不是W加不是W,就是在R的基础上进行了个扩展,可以写,但不是W啊f.right往外写点啊,写个啥呢?咱们还有谁?
32:18
你们熟悉的名字周杰伦吧f.flash然后呢,首先首先我们在这啊去打印一下啊去打印一下来走你。走,你看没,我们打印的结果是不是还是刚才读到的那个结果对不对,然后我是往里面写的对不对,读先读后写嘛,对吧,先读出来,然后再去写,再写的话,你这块读的肯定看不见周杰伦,因为周杰伦是后写的,那么往下看文件里呀,后面多了个周杰伦,是不是多了周杰伦对不对,好了,多了个周杰伦,多了三个字之后,兄弟们,我现在是先读后写,没毛病对不对,没报错,也没有出现什么异常,对吧?然后我给它换过来,我给它换过来,你看一下,我先去写后去读,你看下什么效果啊,来随便写一个,比方说写个谁的。
33:18
周润发吧,周润发呀,可以啊,周润发,然后呢,我是先去写的啊,先写后读,先写后读,你看着走你。看不到的,有点问题了,振宇,毛尖妹妹,小薇和周杰伦来这几个东西,这几个东西是不是后边东西是不后面东西大洋哥没了是吧?看这往上走,往上走,老师点名看振宇上面原来是谁,是不是大洋哥现在变成了谁?周润发,周润发,我实际上兄弟们,我际上我是先去,怎么呢?是不是先去写的对吧,先去写,直接把周润发给我写在开头了,对不对?
34:07
对不对,那么为什么会产生这样的情况,看好了,我给你说一下加模式,R加模式这记啊R加模式默认情况下,光在文件的开头,光标在文件的开头,所以我们可以先去读,因为他在文件的开头,我也可以读读读读读读完了之后光标书跑到最后去了,对吧,这时候再写是不是得最后去写了,对不对?所以我们这个R加模式怎么办,是安全的,怎么办,是安全的,必须怎么办,必须先,哎,必须先读后写才是安全的,才是安全的,因为它的光标在最开头,最开头你去往里面写,肯定得开头写,肯定得开头写,所以我们先去读就没事了,先读嘛,光标跟着走走走走走。
35:07
走到最后了,哎,你读完了你再去写,呃,最后跟着屁股后面去写啊,所以R加模式记住了,它默认光标的开头必须得先去读后去写,先去读后去写好了,这个就是加模式,R加模式,那么接下来我们来介绍第二种,第二种R加完了该谁了?W加是吧?来W加说一下,他说这个不住了啊,不住了,直接新建吧。W加跟它差不多,但是它有个坑啊,文件操作杠W加啊,W加W加里面刚刚这个,他为什么你把所有话写进去和人都覆盖念读出来的时候就没有。因为你没flash没关,他直接在那里面呢,还没写进去呢。并且我读的时候,我读的时候我先去写的,看着我先写光标写写完了之后干嘛了。
36:04
速光标停这了,速停这你再读是不往后读了,对吧?一切取决于那光标,这光标一会我们侧重去讲,那你Fla一下光标没用,没用也不好使,不好使跟那个没关系,还是我先写写上周润发那是光哥是不是留在这了,我在读是后面读了,读是从光标位读,对对,从光标位置往后读啊,从光标往后读,好嘞,看这往下第九个W加,W加是写,在写的基础上进行一够扩展,那你可以把它理解成是写渎啊,可以解成写渎这个名字听着这么慎重,亵渎啊,亵渎来吧,Model等于W加后面一个encoding这块来一个什么呢?UTF-八,然后我往外写点东西,写的话是自带帮你创建文件的,对吧?f.right来,我先往外写,写个什么呢?写个。
37:05
嗯。我都不知道写啥了,好了,就这个东西了,然后我去干嘛呢?去f.flash先确定它能够往外写f.close来走,你现在是写的概念来文件帮我弄出来,里面是我也不知道写些什么对吧,这是个文件,然后兄弟们看好了,我找到我的W加来,我给它改一改,不叫这个了,叫啥呢?叫今天听器看着我写了几个字,四个字对吧?来走你你行看这个文件亵渎今天天气是不是带W都删了对不对,只要粘W,只要你粘了W,它只要你往外写,它就把什么了,把里面东西给你清掉啊,给你清掉W这个很坑,他的坑就在这,我操不是覆盖了,不是覆盖了,我一直说不是覆盖吧,WW操作会干嘛?
38:06
清空原来的内容,这个没办法,它的工作就是啊,3W就这样,3W就这样,只要你有W这个东西,它就这样,然后往下走,往下走,我现在可以写,写完之后呢,W加我是不是更想往出读啊,对吧?来看这f.read我往外读有个S,等于它来后这个时候呢,我们去打印这个S,你猜猜这个S是啥读你猜猜是啥,看着他一上来整个W加的操作,一上来清空啊,清空之后干嘛呢?是不是写了写了什么,今天天气,然后还要往后读,按照知刚才的理论来说,它是不是应该往后读啊,对吧,但是所以有没有西没有东西,所以这个瑞或者W加模式,你琢磨琢磨它好不好用,不好用,如果你真的想往。
39:06
就是想把刚才写东西读出来的话,你需要这样F点这一会要说的f.seek去挪一下它的光标,它现在在最后呢,因为写东西了吧,在最后呢,SEEK0 seek0,让光标分给我,回到开头去啊,回到开头去,这时候你再读。看今天天气,这样才能做得到,这样才能做到,所以默认的W加,再说一下,默认W加基本上你是不用的,是不用的,为啥不用,为啥不用没有用,知道吧,你先写,写之前先把别的东西先干掉了,然后往里面写,写完之后想读,你还得先去挪光标再读,对不对,很烦啊,很难,所以W加这个很少用,很少用,几乎你是见不到的。这里面涉及到一个新的知识点,Seek,就叫移动光标,它挺牌的那个所引啊,一会说不是索引,不是作业,一会我说一个东西,你立立马就明白这光标是啥了,很坑的一个东西啊,好了,这个东西W加一到这A加跟它差不多,跟它差不多,我一自个儿试下就成了那个A加,我不打算说了啊,不算说了,然后接下来还有一些东西,我没有讲什么呢,看这。
40:23
从这R加BA wa加BA加B,这是啥意思?处理算什么呢?处理8X的对不对,所以你要会买个就成了,是不是W。呃,R wa仨就成了,然后你再记一单一个谁单记个谁R加,单记一个R加,所以这四个你记住了,剩下的基本上就是就是通的啊,就是通的格式都是一样的,好了,这个东西咱就说到这啊,这个东西说到这儿,剩下的这些打架带毙的,你想试你就试下,不试也无所谓,无所谓啊,然后往下看着,我们要讲一个比较重要的东西。
41:06
光标去了,往下往下啊。追加这呢相关的其他操作,这个地方我们要讲一下光标是什么玩意儿,这里面有个东西叫做seek seek表示可以移动光标的位置,可以移动光标的位置,那么这个seek里面给的参数NN表示的是什么呢?是字节,是字节,你要移动到多少位,多少个字节,那个位置。那么光标在我们日常生活中其实很常见,只是你没有注意到,看到你的键盘上会有一个键子,叫做音色的,知道吧,叫音色的,按一下音色的,这个东西就叫做光标,这个东西就叫做光标。那么我们读的时候,一开始光标是在假如啊,我们读光标都在哪呢?都在开头,都在开头,那你读的话,读一个读一个读一个,读一个读一个读一个,每读一次光标往后走一个,每读一个光标往后走一个,那么如果是R模式,兄弟们,如果是加模式,我读了三个字节,读了三个。
42:11
自己看好了啊,R加模式读了三个,它出来,它出来它出来读了三个字节,那么这时候光标是不是留在这的位置了,对不对,然后这时候我要写的话,那就直接在这个位置写,直接在这个位置写,想想你键盘上如果用银色的模式往里写是什么效果,句话看着啊,我写AAAA什么意思,什么意思,是不是把原来那位置东西给你换掉了,对不对,所以我们R加模式,R加模式会出这个问题,会出这个问题来我们来看一下这个问题。我怎么越撑越没呢?得了,我给你写了我的天,这呢,我我以为没了呢,来,我把它摁回来,摁回来,来,我们看一下R加模式里面的一个坑,我们把这个注掉,那F等于open,我随便来一个文件,比方说叫呃。
43:14
精品啊,精品精品啊,Model等于加,你注意听啊,这是重点的R加,然后encoding等于UTF-八,然后这时候我去准备一个精品啊,准备一个精品。最近新建一个,哎,叫精品啊,什么叫精品,浓缩的都是精品啊,浓缩的都是精品,我就不是精品啊,不是精品啊,潘长江是好了,就写这么长一句话,然后接下来看好了,我去读东西啊,我去读东西,比方说我从这里面去读,找一下这里面F点叫read,假如说我read个三好,我里面给参数了,我之前不给参数,Read的是多少散步对不对,我现在来一个三,你看一下我读到的是什么啊,注意看S等于它这时候我们去打印一下这SSO,你这个三什么什么意思,这三个三个字符,看啊,这个单位不一样的读三个字符,那我换句话说read里。
44:32
我如果跟上一个参数是什么概念,读前几个读几个对不对?读几个不是前几个啊,不是前几个是读几个,它未必是前面几个啊,比方说你看着我往下SS等于f.read我再读三,你看这个SS是啥呀?六来看一下,看这浓缩的都是经光,看懂啥意思了吗?看懂啥意思吗?就从当前光标开始读几个,读三个对吧?好了,来这个地方我们读了三个之后,我们说R加是可以往外写的对不对?来往外写的话,比方说往往写写f.right啊写个什么呢?写个麻花藤。
45:19
马虎腾吧,写个马虎腾,走你。浓缩的,他原来文件精品里面马虎的啊,这个忘了操。这是,这是另一个坑啊,我的天,这是另一个坑,忘了忘了忘了,别别别,没事我给你绕回来啊,停,清醒一下啊,清醒一下来,这是这么一个坑,我的天,这得由A加能看出来,R加还看不出来,哎,来吧,看这。我给忘了那个坑,那个是个神坑。很难,我把文件还原回来,浓缩的都是精品,我不是精品,然后呢,潘文江是精品,那么往下我进一行,不用R加了,我用A加,A加可能是A加也不行,还有加R加了,然后我从这里面读出东西来,首先先说这坑,先说刚才这坑,我们先读一个,比方说F等于f.read的,我读三个字符,正常来讲现在的光标应该在哪,读三个是不是应该在这了,对不对,光标在这了,所以我现在正常写应该还是往后写的,并且我们在这接着读是不是读的,还是这三个方面对不对?但是R加模式下有一个神坑,神坑是不管你前面读了几个,后面去写,都是在末尾,规定都是在末,不是规定它应该是里面的一个bug,它应该是里面的一个bug,这个东西我们在办公室讨论了很久。
46:59
我们讨论了很久,最终我们给出了这样的一个结论,就是在R加里面,如果你读了内容,不管你读多少,你是全读也好,读两个字节,两个字符也好,光标显示是多少,不管是什么情况,再往里面写,只要你往里面写,或者说进行文件操作,都是在末尾进行,都是在末尾进行,这是它里面内部的一个一个问题,它内部的一个问题,看这,看这我现在读读的是三个,那么兄弟们,我现在光标,我们按照正常来讲,光标现在哪,就是是不是在这对不对,我在读是不是应该在这,对吧,是这样吧,看这,我从这再往外读SS,等于F点来,我再读个三,这时候SS是什么,读多的都是精,都是是不是这几个字,是的,但是我现在读的确实是这几个字,你说光标确实在这儿呢,但是它坑就坑在这儿。我如。
47:59
口爱去点写,我写什么东西都是在末尾看着啊,哈哈,我写什么东西他都是在末尾,你注意看右进走,你看到写个哈哈精品里面,哈哈永远在末尾,看到了吗?是不是也相当于追加了,就追加,它不是追加,他还不是追加,你知道吧,它跟追加还是两码事,跟追加不干扰,不干扰,这就是R加的一个问题,就是加自身的一个问题啊,有毛病,这确实有毛病,能不能不读,直接就写,直接写可以看着啊,RJ模式这个坑还来了,如果你不读光标在哪,在头上你读对不对,从从头开始读,所以这时候你看正常来讲,它应该是怎么按来说,应该在最后一张,按刚才那个逻辑来说,应该是最后,对不对,但是很不敬,看着往里边写了,哈哈,汉精品,哈哈,又写在前面去了。
48:59
就是他的一个问题,知道吧,光正常的,那读写都应该跟着光标去走的,但是如果你上来就写光标带头,他就改头写,改头写,但是如果你读了,假如我读了三个,读了三个字,那这时候你再写跑哪去了,跑后面去了,跑后面去了,他他没有套路,没有这个什么呢?绝对的套路师,R马R加加啊,而且你们未来用的最多的还就是R加,就是R加,所以这个right呀,我们要给它分个类,第一个看好了,在在什么呢?在没有任何操作之前进行写,这什么意思,在哪写,在开头写,在开头写,那么如果读了啊,读取了一些内容。
49:59
那这个时候你再写往哪写,最后再写,写入的是最后开头,那个是再写,写入最后开头覆盖了,对呀,覆盖了再开头写吗?后面这是追加,后面后面不是加,也是覆盖,因为你到最后了,你覆盖谁了,它不是没东西,没它也是覆盖,兄弟们,这个地方只不过是个空,到头了你再写东西,你写ABC实际上都是在覆盖,然看到的是最加的覆盖,不要追加,气死我了就追加追加在这追加AA死我了啊,不能A没A啊没A的事看着啊覆盖啊兄弟,这个里面内部就是覆盖,你给别记追加,追加跟他不是一码事,不是一码事,因为看着我如果在这写看写个什么呢?比方说把这个我用这个insert,用insert的模式能看出来我写的ABCDEFFG,这是覆盖,知道吧,咱们正常操作在文件里面操作在这写ABC。
50:59
Deg,这都是覆盖,空白,空白,空白对覆盖的是空白,都是覆盖,都是覆盖,所以我们的文件操作R夹里面或者是文件操作,其实啊都是用这种模式,知道吧,都是用这种iner的模式在搞事啊在搞事好了,这些东西听好了,听好很很深啊,在没有操作之前,听好了,它默认在哪,在开头写,然后如果你读了一些内容再去写的话,这个时候写的是哪呢?是最后啊是最后这个怎么讲呢?没有办法啊,没有办法,就是这么坑啊,看这我把这个换掉,巴拉巴拉巴拉巴拉小魔仙看来啊,超人来这个时候看好我在读的话,我先去读,读三个,读三个,或者说读一行也好,读多少也好,我只要读了,你只要读了你再去写,它就是在哪呢?在末尾啊,在末。
51:59
对,走你右键跑起来,从这没有问题,在这边精品前面都没有变,最后给你加了个东西啊,加个东西这个怎么讲呢?它不受你控制,你知道吧,它不受你控制,我跟你讲,按照道理来讲,应该是跟着光标再去走,但只有这个位置,它不是按照光标走的,听好啊,咱们讲的R加W,呃,不是说一下W加什么,A加WR,还有A都是跟着光标走的,只有这个玩意儿,不是只有这个东西,不是啊,你可以回去试一试去,这个东西是坑啊是坑好了,这估计就是2000哪个。
52:38
什么2000这个不会,这个不会,这个不会,这个一般考试就是怎么讲呢,现在面试官还没发现这个题,你我在这三十三百一十五道题里面还没看见这个题啊,还没看见关于文件操作的题啊对好了,这个东西说完了之后,对吧,说完了之后我们去说那光标的事啊,说那光标的事,那个光标啊,我们不能看写,我们得看啥呢?得看读啊,我们看它读读的话,现在我这个是f.read的三,那么它默认上来是从头读,读几个,读三个是吧?来我把这个复制一下啊,我把上面的注掉,别动上面代码啊,那块有坑来有毒啊,放这我现在读读三个,读三个的话,兄弟们读三个的话,那光标的话,这是读这个读出来,这个出来下一个再读,是不是都是精品了是吧?从这开始读了,那么往下看好喽。
53:38
好了,我在这可以让f.seek.seek去移动一下光标,移动光标,比方说我往里面写个几呢?写个三,写个三,咱们正常思维是一共三个位置,对不对,但是我刚才简单的说了那么一嘴,这个seek的单位是啥呀?是bit,是字节,是字节,那也就是说现在我移动是三个字节,三个字节u to啊几个字,一个字,所以这时候是什么,这是什么?移动一个字,移动一个字,那么我们看一下,我们看一下,我们现在去打印一下f. readf.read这时候再读找你。
54:28
看一下的人的都是精品,看着啊人的,看人在哪了,第二人的啊人的,等会人的都是精品,他怎么又跑这儿来了,应该先把我把它干掉,把它干掉,把它干掉,现在f.SEEK3移动于几个字,一个字对吧,然后去读走你。人的都是精品,从这人的都是精品是一个字对吧,现在是一个字,但是我想不通,他应该从这读啊,对啊,前面剧读三来三应该是从哪了,三是几了?超人读了三对吧,0123超就是人对吧?超人的应该出来,然后再读,应该走一遍,然后再走,对,很奇怪,看保它应该是相对于这是绝对路定应该是相对,相对开头的应该相对于开头的,对吧,开。
55:27
Seek光标移动到N位置啊,移动到N位置,那我这说的没错,这话说的没错,移动到N位置,那也就说移动到三这个位置就是一个字,移动到放在什么意思,不是移动几个,是移动到这个位置,移动到这个位置,那么这时候我们读的话,移动到三三这个位置正好是三个字节,一个汉字,一个汉字过选,然后前面那个读了,不是前面已经读了三个字正吗?对,我读了三个字,但是的意思是移动到哪,移动到哪里,移动到哪里,咱举个例子,你现在这咱们01234,那我说你移动到四,你是不是01234到那去,而不是你往后数四个。
56:15
相对我来说,对相对于头来说,相对于头来说,相对于头来说,这是移动到动,对我让你移动到哪去,然后我让你移动到零是哪,移动到零是哪开头,所以我们说零是啥意思,SEEK0啥意思,就是在你前面,不是说不管做了什么操作,SEEK0是跑头去,是跑头去,所以这个东西让你记得就是这个玩意儿,就是移动到开头,我们怎么写开头是什么,Seek写零,移动到开头零,那移动到末尾怎么说不行到多移动到末尾这个去记就可以了,是f.seek里面是两个参数,一个是零一个是哪呢?
57:16
一个是二是零二,这个是末尾,这个是,这是开头,这个是开头啊,你要真想来记怎么回事,那我可以给你解释解释,看着这里面是有解释的,看着S021个结尾,第二个参数表示的是从哪个位置进行偏移,默认是零表示的是开头,所以我们默认不给,那就是零零那就是开头。那么如果给的是一表示的是当前位置,就说白了,在当前这个位置你要移动多少,最后二表示末尾,也就说在末尾你想移动多少,末尾移动零是多少?在末尾移动零是什么意思?是末尾了对吧?所以零二表示的是你移动到结尾,这个零表示的是开头啊,这两个东西要求你记住,这两个东西要求你记住啊好了,这里面会有三个参数,第二个,呃不,第二个参数有三个值,第一个值如果是零的话啊,第二个值如果是零的话,表示啥呢?表示的是在开头啊,在开头一的话表示的是在当前,然后呢,二的话呢,表示的是末尾,在末尾,而第一个参数表示的是撇移量,偏移量,你要动多少,这个动的是零,在末尾移动零,那就是末尾,那就是末尾啊好了,这是seek它的一个作用,Seek的一个作用,Seek之后往下来看C个之后,它表示的是移动光标啊,各种移动开头,移动结尾或者怎么怎么样,来看一下啊,看一下我们来移动移动试试啊,移动移动试试。
58:58
把这个注掉,比方说我让f.seek来个六,这是移动多少移动了,移动两个字跟开头一个字,两个字是不是,然后两个字后面东西你在读对吧?然后接下来看好了我f.read比方说我read个三,这啥意思?三三这是read,这不是独套,这是读取我的,这是读取三个字,这上面是啥呢?一共三个不是一动到六个字节几个字,两个字啊两个字看着啊看着啊,说这时候我们read得到的东西S等于它看,那我们去打印一下这S,然后我们再来个SS,等于S点在read个六啊READID3吧,啊,READID3,然后。
59:58
再打印一下SS来,我们跟一下,看他读出来的到底是个什么鬼啊,到底是什么鬼,看着一上来,我把精品给我拽过来,精品出来。
60:10
精品出不来,我操。来,我把精品东西粘出来。来精品东西是这样的,那么这个时候看好了六往哪学光标是不是两个字干掉到这从这开始对不对?来从这开始READ3出来是什么是不是的,都是这三个字了,然后干嘛了精干嘛了,又READ3,这时候对的是什么?是不是精品,然后逗号对吧?来看一下是不是。是不是的,都是精品的号,是这样的吧,然后看着我在这个位置打印完了之后,我让f.seek什么呢?SEEK0 seek0来告诉我现在出的结果,S是什么得都是对吧?SS呢?SS是不是又回到零了,回到头头的话来数几个数三个超人的,所以等你看那超人的,所以这俩玩意坑在哪呢?单位不一样,意义也不一样,瑞的读是三个字,三个字符,而seek是啥意思,移动多少哪哪字节对吧?移动到多少到字节,所以这个啊,很绕很绕啊,好了,这个东西说完了之后,我们看一下,看一下啊,我们在。
61:33
上面那是二加吗?对呀,是R加呀加,你读一遍光不到尾了吗?我得写的时候才往尾写。小然,这你在写的时候,他都是往哪呢?往往往最后写啊,再写都是写到最后是写啊,跟那个没关系,读出来之后的对,读出来之后再写,就是往末尾写,那么这时候听好了,听好了这个R夹,这个R加你以后读想想啊,我想把文件里边的内容一遍又一遍的往出读,怎么读。
62:05
对,我现在想读一遍,先把先把它都读出来,都读出来怎么读X等于f.read的是不是都出来了是吧?然后剩下公号在哪呢?是末尾来末尾的话,我f.read这时候能读东西吗?有没有东西,这里面有没有东西没有,就这时候第二个这字符串,这是print的SS有没有东西里边没有看没,我们只有一套东西对不对,第二套东西是空,为啥是空啊,没了,包括最后对不对,那我想再读一遍,怎啊回f.C解零啊米。看上两个就都出来了啊,都出来了,所以这个光标用的时候,这种频率是最高的,就读来读去,反复的读这个比较高,好了,光标就说到这啊,光标就说到这,接下来看啊,我们说一下后面的该谁了,Tell tell是可以干嘛呢?帮我们获取当前光标在什么位置,说白了我读了五个字节,我想看看光标在哪呢?我想看看光标在哪呢?你可以通过tail去达到当前光标的一个位置啊,光标的一个位置,然后还有一个是什么呢?叫track tracket这个函数听好了,你要是怎么讲呢?呃,也是它是截段文件,这个段呢更难理解,但是呢,真的用不到,真的用不到你们这到后面我跟你讲,到你们工作里面到几年之内都碰不见这个玩意儿,都碰到这玩意,它是什么?把一个文件,好好的文件,把里面内容咔给你切下去给你。
63:43
切下去啊,给你切下去穿是删掉当前光标后面所有的内容,而且这个不一定删的是真的你想删的那个内容,所以这个东西我们不打算讲它,你要有兴趣自个儿可以去试一试的啊,这个很坑,我告诉你这个很坑,然后下面就是这个深坑,这深坑R加模式下,注意R加模式下不管你读了多少东西,你要往哪面写就在哪写,注意末尾啊,末尾这块有问题啊,这块有么问题,然后咱们说一下这个东西文件的修改,文件的修改就好比说我现在有一个文件,上面写着潘心点写着什么汤老师写的什么什么这个人,我想把某个人给他改了,想给他改了,那么这个时候就注意你要改的话,不能直接改,不能直接改我们的潘项也好,我们的其他的任何一款工具也好,都不是直接改的,都不是直接改的,我们必须怎么办呢?必须先把里边的内容读出来。
64:43
然后呢,进行一个修改,改完了之后再把它放回去,但是放不回去,你放不回去你只能干嘛呢?重新弄一个文件,重新弄一个文件,然后把新内容写到新文件里面去,再把老文件删掉,再把新文件的名字换成老文件的名字,啊费劲啊费劲,看着看着正好在这块给大家介绍一个新的语法来写一个有什么呢?这个呃,吃的了啊吃的中午了吗?都想吃东西,你想吃什么烩面,炸鸡,什么小米粥,有想喝的吗?红烧肉,红焖肉,梅菜扣肉,猪。
65:43
蹄肉猪蹄好了,收了这么多肉,现在有了这样一个文件,接下来,接下来我要把这个文件里面的所有肉给我换掉,换掉换成菜,换成菜,把肉字给我换成菜字,那怎么玩呢?怎么玩呢?我是不是先把这东西读出来对不对,读出来之后,我把所有的肉字换成菜字,是不是想办法再写回去,对吧?所以这里面看好了,在一个文件里面又读又写,这个是不让的,这个是不让的,所以你没办法直接操作,没办法直接改,那你怎么办呢?你需要搞一个这个东西,第几个了,这是第十个了,来文件内容修改,修改的话,你必须干嘛呢?先打,先引入一个包,Import OS SOS模块是。
66:43
你们未来要学的一个模块,这是系统系统及模块啊,然后我们说之前打开一个文件的方式要用哪个函数来着,Open是吧,Open,但是呢,Open前面是不是得给一个啊,一个一个句柄等于它对不对?那么我们教你一个新的写法,叫with,叫with with open open open的话里一样,我要改的文件叫啥来着,吃的,然后里面我先去读,读的话怎么读博是model等于什么,我只想读R就可以了,对不对?Including,什么utf-八,然后 Sf1 SF一看好了,这个写法和我们那个是一样的,只不过我们那什么写的,F1等于open,能看懂吧,给它翻过来了啊,给它翻过来了,这么写的好处在哪呢?咱们写F1等于open,这种模式你必须得自己手动写close,记得吗?
67:43
啊,这些close,为啥我说我不经常写close呢?因为你用with就不用写那个东西,你就不用写那个东西,当他执行完了,它自己会帮你关啊,自己会帮你关,然后往下走,接下来open,然后往下接着打第二个文件叫什么呢?你把这个文件东西读出来,读出来改完了,你是不是要写到另一个文件里面去,对不对,好了,往下写,写什么呢?写吃的,吃的我们叫它副本,我们叫它副本,然后呢,Model,我这个文件是准备往外写的,往外写的然后including是什么?Utf-八对吧, asf2 Sf2,这样的话,我同时打开几个文件,两个文件前面这个是你原来有的,后面这是没有的,但是我用W模式抛法是创建的,对吧?然后接下来看好了,我从F1里面read的1READ的什么概念,你们是不是全读出来了?
68:43
好了,全读出来之后,我先给它复制成一个字符串S等于我都读出来,都读出来之后拿到的这个字符串S是不是就是你的文件里面这些东西,那我要干嘛了,我要把肉换成啥,换成菜好了,把s.replace把谁把肉给我换成菜,这就完了吗?SS等于是不是这样,是不是这样,然后我现在的SS里面是不是把所有的肉换成菜了,画完了之后,我要把这干嘛去,是不是写到吃的副本里面去,是不是写到F2里面去,所以F2点把SS写出去就完了,就完了,但是现在看好了,我右键运行一下。
69:33
看这吃的副本里面是不是都变成菜了,没问题吧,现在写出来,但是我是不是想把原来的文件修改一下,对吧,现在你好家伙,你给我搞出来个新的,并且原来文件还没动,对不对,对不对,那怎么办呢?我把原来这个干掉是不是就可以了,对不对,怎么干掉它很简单,一句话看着啊,当我这些操作做完了之后,OS点干嘛干嘛删掉,把这删掉,把吃的删掉,把的删掉,吃的删掉,你这个吃的副本是不是就变成吃了呗,对吧,怎么变的名重名名把这O点内把谁呢?把原来的诗的副本变成谁变成诗的。
70:26
看懂这流程了吗?看到流程了吗?也就是说我把原来的把这个文件打开,原来的文件打开,然后呢,再弄一个新文件,同时从原文件里面读出来,该做什么操作做什么操作,做完了再写到新文件里面去,然后把老的文件删掉,同时把什么呢?把这个吃的副本重命名成吃的啊看着过程是不是很复杂对吧?看着啊,我把这个副本先干掉啊,现在不应该出现啊,再见,看着这个时候我运行你注意看啊,你注意看观察这面走你。
71:01
看到得了吗?没变是吧,吃的变没变,变了是不是速度很快,速度快,所以兄弟们,所以你们在这写,比方说我写个哈哈,写个呵呵,保证他内部都是这样的。它内部都是这样的,不是你想的啊,一个个操作,它内部都是这样的,你写什么东西,一个替换,对你写这个东西都是这样的,我靠太浪费资源了,浪费资源。我增加两遍,你把这个重新创建遍,对,就给你搞一遍吧,就给你搞一遍吧,基本上你们见到的常用的文本编辑器都是这样,基本上都是这样的,很快,太快了,你根本就感觉不到麻烦是很麻烦,那没办法,没办法好了,看这什么意思,什么意思,删除文件对吧,删除文件me呢名同名文件这个东西我跟你讲系统级模块,如果你能学的明白,学的比较溜,并且你的心思不是很很正的话啊,你可以去写病毒。
72:08
你可以去写病毒,很简单,我跟你讲什么叫病毒,破坏就叫病毒对不对,删除算吗?破坏算吧算吧,重个名算算坏算吧,就这俩玩意就能写个病毒,你信不信?你不信,我不能看你们这坏事是吧,电脑得装拍子不了,有道理有道理啊,看着OS是系统级模块,它操作的是你的操作系统,你可以对系统的任何东西进行各种各样的更改,我跟你讲这些东西写个脚本啊,然后你发给你的朋友,他只要双击滑啊,它就黑,他就嗨了,让它黑屏很容易,我跟你讲黑屏是最容易的。黑屏最容易的,无限的去启动一个进程,无限的去启动一个进程,说白了你就启QQ,无限的去启动QQ对吧,由于你的你咱们写外循环,咱们见过这样的喷人,还记得吗?还记得吗?一对不对,是哈,Example来,我就按照这个速度去启动QQ那个进程一会一秒就没了,知道吧,一秒就没了,所以卡啊,那卡呀,一直卡着呗,反正动不了啊,因为我气掉不出来啊,特别差,好了好了好了,With看好我这么写写不写close来看我这写不写没写,所以它的方便之处就在这,方便之处在这,还有这个open呢,你看这个open,这个open,这open后面F2会顶出去了,对吧,我更希望怎么办,是不是下来看回车,看着回车让它换行。
73:51
换行默认这多了一个杠,看见了吗?但是杠了吗?这个杠的意思表示的是这两句话是什么?是一行的内容,是一行代码太长了,我想换个行,那就用这个杠就可以了啊好了,这个文件这个修改这块就说到这,然后接下来兄弟们看好,我今天上午讲所有的文件读取,除了那个read n read3 read4 read6之外,我们每次读都是怎么读的。
74:20
是不是从头啊到尾全读出来对不对,我现在给你个两个G的文本,我给你两个的文本,你要读多长时间,你要读多长时间,是不是一次性咔两个G的文本出来对不对,但是你电脑受得了吗?得了对吧,能受得了,好好给你个20G的文本啊,为20个G的文本,20G文本还不够的话,给你来60G的文本,对吧,不用读,我跟你讲一个两个G的文本,普通的Windows就很难把它打开了,很难把它打得开了,不信你就试一试下啊,你试一试现在的电脑好多了,我在一三年的候,一三年的时候,我那时候那电脑反正还成吧,还成吧,打开一个一个G不到一个G的版本,我们公司的日志,整个公司的日志那么大,接近一个G的文本,我拿我的Windows打开,活活把我电脑闷灭了,那吧灭了所散散热不太好,电脑也烂一点啊,就闷灭了,然后我们公司。
75:21
没有人能打得开那个东西,最终只能把那个东西挪到别人的,就苹果那个那个系统那个能打得开,那个买到当年他买的就是顶配16G的内存,对吧,16G内存直接根就打开了,那时候咱们还2G内存的,你知道吧,人家16G内存啊,直接能他能打得开,但是打开也非常的慢。非常的慢,太多了,知道吧,太多了,它那个右边的这个这个这个东西这个东西是看不见的,是看不见的,小太小了啊,所以这个东西如果你的文件很大很大,那么这个时候你一次性全部读取的话,这个是不太合理,而且你的内存也未必能承受得了的,所以我们要介绍另外一种东西叫啥呢。
76:07
来,我们就看读就可以了,这个事只涉及到读的问题,看着啊读,我们读一个文件啊,读一个文件,把这个注掉复制一下啊,我比较懒。还让我再建一个,我才不建呢,来来看着我随便来一个,比方说刚才那个叫什么呢?吃的吃的,我现在一次夸全读了,读的合理,那怎么办呢?我最好是一行行读对不对?那我可以F点看着read,跟read相关的,相关的有个read read line什么意思啊,一次读读一行对吧?还有一个read读对不对,什么什么你在说什么,我以为table表,Table表是什么玩意,看错了啊,吓了,Read read可读的读的下面read read的么意思,多行对不对?多行我告诉你,它也是怎么哗全出来,只不过是多行一起出来。那么这里面就涉及一个问题,我到底用这个呢,还是用这个呢?上面看着我们先看一下red line,先看red line来个S。
77:17
等于注意观察啊,注意观察我吃的里面是啥呢?烩面炸鸡对不对?瑞德一行应该是谁是烩面呢,对吧,来看这。哪去了?三走你。看着会面出来了,那么我想再读一行呢?是不是再来一行,这是一,这是212。来找你。烩面闸机中间来一个空行,先把这空行先解决掉,空行是怎么产生的?兄弟们看好了,我这个文件里面最终写完会面,我是不是敲了个回车写了换行对不对?然后我的打印语句结尾是不是还会给我跟一个换行,是不是就成俩换行了对不对?俩换行在会面换行,然后再来换行,正好过去,是不是中间换行就出来了对不对?所以,所以这个地方打印成这个样子,你不用管它,你不用管它,这个是正常的,能理解吧,能理解吧,就是两个,就说白了,你文件里面有换行,打印就给换行,俩合一起,正好本本俩换行啊好了,这个问题不纠结,那么往下看着这个地方,我们读第一行得到的是烩面,第二行再读的是闸鸡,我想读第三行是不是还是瑞德拉是不是,所以你仔细看这东西,这东西像不像一个东西像不像什么呢?哎,不是光标像不像这玩意。
78:44
像不像这玩意来看着什么叫什么烩面,然后呢,炸鸡啤酒,看到我们第零个拿,第一个拿,第二个拿,是不是拿法基本上是一样的,对吧?这个是不是拿法是不是也是一样的对不对?这个如果想快速的一个个拿,是不是可以用后循环对吧?这个也可以用后循环,也可以用后循,我们的文件句柄直接就是个迭代器,它可以直接进行迭代,所以我们可以这样写,看好喽,For line in f直接打印LA就可以了,直接打印这个LA就可以了,看好了,这里面for line in f下面for list见过内容啊,那里边什么效果,是不是把list里边的每一个交给前面这个变量对不对,一样的,这个是把什么的。
79:44
把这个文件里面的每一行拿出来给前面这个变量,那你直接读就读一行,那么循环着读一行一行一行出来的结果是什么,是不是一行行读对吧,所以整体。还是一下是一下下出来的,但是我现在是不是可以循环了,明白,这还是一行行读吗?是一行行读,是一行行读,这是每次读取一行,怎么呢,读什么呢?慢点,这个我臣妾也办不到,这个臣妾办不到,你知道吧,因为它太快了,你知道吧,他读完一行打一行,读完一行打一行,我们可以这么来看,兄弟们,我们可以这么来看,来每次读一行之后,我们给它加一个音谱的可以吧,加个音谱的,呵呵,音谱的呵呵,这块会干嘛,是不是停在这,停在这儿是吧,来我不呵呵了,来这吧,来个这个每次停在这儿,我停在这,我一敲回车,它是不是就是下一次下一行敲回车数进下一行,这能行,懂吗?这个来这样这样这样可能会。
80:59
下来看会面第一行是不是出来了,程序是不是停在这了,这是不是读一行来我一回车什么意思,是不是下一行出来,我第二回车呢?是不是下一行出来,是一行行炉吧,收住啊收什么手收不是,我没法让它慢下来,你写个步循房,我怎把它慢下来,兄弟行,我真是太难了,太我知道太们娘死力吧,那个不行,不能写,不能写,再写更能了,纪实怎就这要知道来我问你,我说写个喷人无限喷一来哈来,你让他给我慢下来,怎么慢下来,明白什么意思吧,啊明白,所以这个听好了,再说一下这个东西什么意思,每次读取一行,笑啥呢,笑啥呢?啊,慢不下来啊,每次读取一行,然后呢,赋值,赋值给且面。
81:59
面的前面的变量啊,为啥这么写,好兄弟们听好了,我如果是一次读一全读下来,然后呢,拿到里边那么大多东西内存容易撑爆,容易撑爆,但是呢,我用这种形式,有人说诶你这咔咔读从头也是读到尾,是不是也容易撑爆,对不对,但是我是不是哪一行我就可以处理一行,处理一行的时候,如果发现某一行出了问题,或者说他不太符合我的规定,我是不是可以组织一个,我一不认,是不是就不往下读了,是不是可空了,相对来说啊,所以这个要比那个一次读要好读。
82:39
你要读第五行,那你就光标挪到第五行,这个想挪第五行,那你就记个基数嘛,记个count嘛,Count等于零,然后往下循环,如果count,如果count不等于五,不等于五是干嘛呢?Continue就continue就完了。
83:05
然后下面还加个什么count加加是吧,Count等于count加E,每次循环加个E,每次循环加个E,当他数到第五行的时候,去打印第五行没了,看断那个看这什么一,诶我没有第五行吗?没有。吃的吃的有第五行了,等于等于这少一个。最少一个走你对没扣,第五行是判断这个函数啊,函数没有行数,那没法判断函数,函数只能自己去记,靠什么循环,靠什么循环,这叫迭代器,这叫迭代器一行是一行,他每次兄弟们说白了,说白了他没有所谓的基数,他每次执行的都是一个F点,他每次就执行一次日段来执行一次日段是不是一行再执行一次呢?是不是第二行了,是不是第二行了,再执行第三行了,再执行第四行了,再执行第五行了,这这么来的,这么来的,你怎么知道的,不是不是这么着读,对,就是这么他读的你没别的办法了,知道吧,他就给你这个东西啊,就给你一个东西啊,气死我了,气死我了,好了,对不对,你要朗读第五行,你要自己去记数,他官方不告诉你,怎么他没有。
84:35
我没有,没有方案告诉你,那你就记呗,你想直接蹦到20行,是这个意思吗?蹦不到办不到,臣妾也办不到,什么办法,你们一个一个。干嘛呀,就你在前面那点,然后。有行号是吗?看一下。
85:02
他是这个意思。我觉得这东西还不如,还不如自己自己去写呢,第八个划起来。你说在这里面看是吧,往下走一行。是这个。哪有啊?哪有啊,你骗我哪呢?循环这边有负循环哪有啊,这有行竖哪有啊?这个有个烂的怎么了?不是不是不是,嘉琪哥,你搞错了,搞错了,搞错了怎么样,你再跑,再跑一遍,我跟你说下需求兄弟,他问我怎么直接蹦过20行,怎么看到行号,你告诉我循环,我能看见每一行是什么东西,你俩这是之前那个让他慢一点是吧,我的天,中午死得太惨了吧,来那个已经是历史了,那已经过去了,那过去了debug确实可以看到每一行的内容啊,也可以放慢这个速度,没错啊,没错,但是我跟你讲正常。
86:37
那程序这个执行,这个执行听好,它里面内部结构就是去执行我们的read LA,每一次读一行,每一次读一行,每一次读一行,它根本不用计数的,他根本就没有计数的,所以他也不会涉及到什么索引下标,这玩意有没有索引吗?没有对吧,没有什么索引下标,你说他跟类似的一样吗?它不一样,但是它有相同的操作,都可以用负循环,都可以用负循环,这个它的负循环我们要讲到迭代器的时候,才能说到它的内部到底是怎么玩的,它里面涉及到一个迭代器,迭代器实际上我们每次用的负循环里面都是一次迭代的过程,都是一个迭代器在工作啊好了,这个是用风循环去打开,那么OK,这个东西说完了。
87:24
回过头来,还有一坑没填呢。还要啊文件修改,这我现在修改是怎么修改的,那么我是不哈全读出来,然后改,然后咔再塞回去对不对,那正常情况下你这么搞,如果给你来个2G的文件是不是搞不定了,那应该怎么玩呢?应该怎么玩呢?这个是不就不太好了,最好是怎么玩后LA耶,什么F1,从F1里面读出了一行读一行,我就加工一行,对吧,然后来S,等于land.replace把谁换了,把肉给我换成谁菜好了,换成菜之后是不是一行我处理完了,处理完了就直接写到那个文件里就可以了,对吧,直接是f2.right,什么S对吧,把它写出去就可以了,你说每一行读出来我都要进行这样的一个操作,每一行做个操作啊,这样就是我们完美的修改文件的方案,走你。
88:23
跑完了,你们吃的吃的之之前就是这个是吧,那简单改成把菜改成肉是吧,把菜点成肉啊把菜点成肉就好了。走你你停刷就循完了,这边你能看到效果吗?看不到吃的看菜都换成肉了,成肉了,太快了太快了,好了,这就是咱们今天的文件操作啊,波折挺大的,波挺大的,尤其这R加是吧,可今天作业了,今天有作业啊,而且从今天开始,你们后面的作业很多都是跟文件有关的啊,基本上一天都会有,每天都会有,但是等到到哪了,到四到到到哪了。
89:14
不是命令之后呢,到数据库之前啊,前端之你们作业大部分都会跟文件相关啊,都跟文件关管理。来总结一下今天的东西啊,总结这东西来总你看着今天是文件操作,文件操作是吧?来你要得听好,你要记得RR是啥,能干别的吗了,第二个是谁RW写,第三个呢?A什么追加,追加好了,然后第四个是R加,R加是我们重点要说的R加什么叫读写,读写模式,读写模式先去读后去写,没有毛病对吧,但是你要先去写后去读,对吧?上来就写什么效果啊,前面在前面写,在前面写,但是如果你读完之后再写,在哪写,后面写是吧,好了,读写模式,然后R加里面跳R加里面,如果你想反复地读,想反复地进行写的话,想进行各种各样操作,你需要。
90:25
移动光标啊,需要移动光标进行反复读写啊,反复读写好了,这是R加,第五个叫什么W加,这个能用吗?都用啊,只要见到W,你只要操作干嘛都给干掉啊,都给你干掉,然后第六个是啥呢?A加,A加的没讲,课上没写代码,但是这个怎么讲呢?也不常用,它是追加,追加本身A是写操作,带个加号,什么意思,能读了啊,能读了追加读,然后往下。第七个是什么来着,就各种带B的对不对?B啥意思?BIBI,也就说读写操作的是谁,字节读写操作的是字节,这个更多的是用在哪?文本用在非文本上啊,非文本文件上面,比方说MP3到。
91:25
它不变的啊,什么读那个视频的对吧,这个比较比较比较多,然后第八个我们知识点是啥呢?Seek啥光标啊,光标移动,光标到什么什么位置,移动到什么什么位置,那么移动到开头怎么写SEEK00,那么一个个末尾呢,零二好了,零逗号二啊,然后这是S第九个那个文文档上面有个的东西的东西是告诉你光标在什么位置,我一想试就试一下,不试无所谓,那个那个了解一下可以哈,Track也是穿,不要去纠结下午所有关于track的问题,我一律拒绝回答啊,川K的那个真的想给你说的明白很,怎么说很难,比上午那冒泡排序还难啊,那个真的是很痛苦的。
92:25
这个东西是我真的不想看到它,然后再往下是谁了,文件修改了吧,对吧,文件修改哪有删除,咱们没想删除新改规删除是吧?好了,文件修改的话,我们要先干嘛创干嘛创建新文件对不对,分成个新文件,然后把修改后的内容写入新文件好了,写入到新文件之后呢,删除老文件在重命名新文件是创建新文件。
93:01
起来又创建了,那不也是创建了吗?不是你才那创建了,我创建了我我创建了我这个咱吃的副本这边没有对不对,它是创建了啊创建了也就是说兄弟们,也就是说我一执行,实际上你原来看到的这个吃的已经没有了,你看到的吃的是那什么吃的副本啊,然后然后改的名啊,然后改的名你小心点,然后往下走,往下走后面是啥来着,一行行读,一行行读,一行行改,对吧,怎么的怎么写,那个叫负line页F对吧,文件句柄,这里面的line就是什么,一行数据啊,一行数据一行数据,这个东西听好了,你后面作业也好,考试也好,这个是用的比较多的啊,用的比较多的后循环可以去迭代稳健句柄啊好,而然呢,这。
94:02
这就是今的内容啊,并且还是放了一个讲了一个什么OS模块,Mport import的OS,那么两个操作,一个是os.remove remove什么意思,删除文件对吧?好了,这是删除文件os.me重命名,重命名重命名文件它有几个参数啊,两个参数,第一个什么原文件是吧,原文件,然后后面是新文件啊,原文件改成新的文件名,那这就是咱们今天的内容,听好啊,我再强调一下,你需要记得r wa和R加这几个你记得住,剩下的再记个B,基本上文件操作再来个后循环就够了,再来个后循环就够了,再说一下什么啊,对,那种操作啊,完了来后面是什么open,然。
95:02
里面是什么文件名啊,这不行,后面就不写了,来个SF对不对,然后还这什么文件句柄,这种写法,后面跟个冒号的,跟个冒号的它写法不需要关闭文件句柄,缩进句边啊,缩进里面缩进里面啊好了,这就是咱今天的内容,听好了再强调一下R是什么意思,读读写A加R加读写模式,听好未来你写作业基本上都是它或者是RW一起组合用,RW接口组合用,就好比咱今天刚才写那个修改,修改来一个R的,再来一个W的啊,那么想想现在让你写一个文件复制。拷美没有没有,哎,写个文件复制,我现在有个dnf.exe给我复制出来,复制出另一个,再从C盘复制到D排,读完写成个是不是一个读一个写,读多少写多少对不对,对吧,读多少写多少,所以那个很简单,那个直接,但是那个有个坑,你必须得用什么B模式,必须得用这种B的模式啊好了,这个咱们就说这么多啊,这个咱就说这么多模,嗯,Exe文件EXEEXDNf.exe文这个ex啊,非文本啊,非文本啊,基本上就是这样的逻辑,只要你脑子能想得出来就可以啊,想得出来就可以,所以文学操作你看啊,咱们说了一上午,其实很累,我也很累,你看这么多东西哇,右左坑右坑的对吧,但是,但是,而且你记住的不是那么的多,因为它是有逻辑的,知道吧,它是有逻辑的,好了把这个啊这个东西。
96:47
之后呢,去看一看就行了啊,看一看就行了,然后咱们明天你要求预习的东西啊,说下预习,嗯,对预习叫函数啊,函数第二考考考考的函数啊,咱们考试往后推了,往后了,周五不考,下周一考行吧,考啥呀,我上课说了2000块钱,那个一好,我跟你讲,真的就那一道题,我真要给你出来,你要答不上,给你算零分,干不干确定好了,别开玩笑,开玩笑,满分来考试,我们考试是下周一考,也就是说明天是周四,周四对吧,周四是函数,然后呢,周五是函数的进阶,就是把那个参数给大家说明白了。
97:47
然后周六周天,你去把前面东西好好再去复习,复习一下,有作,这就是大作业,有啊,当然有大作业了,你不都行,听我的,听我的,听我的,周六周周周周周周,然后周末好好地把前面东西看出来,听好我们这次考试的侧重点,侧重点是整个Python的基础,也就是说我给你们发的所有的文档里面写着什么呢?写着万恶之源的东西。
98:25
都万恶,不过明天不是了,明天不是了,明天是前方高能,所以明天的函数的部分也会考,但是呢,不会考的特别深,基本上差不多就就OK了,重点是哪啊,前万恶之远的东西,万恶之源东西,什么基础数据类型啊,对吧,各种循环啊,各种不同的基本操作,基本上在这啊,选择什也不是啥题啥题,有选择题,有填空题,有编程题,还有大题都有编程,对我们有卷子写几个几个小时一上午写写写,不是手写电脑写,但是卷子是纸质的,卷子是写写不知道,你不用考虑那么多,你就考虑,就把这东西好好看看就可以了,写回来回回来回来。
99:25
我们明天讲函数,你要知道函数是啥玩意儿,知道吧,函数啥玩意儿,然后呢,你还要知道函数的返回值,以及函数的参数,函数的参数,参数的话基本用法就可以了,函数的基本参数的用法就可以了,这是明天咱们讲东西,明天讲东西,明天大部分都在讲故事,听好啊,明天都是故事了,明天带你们玩一玩,他们13期的,知道明天叫什么,有故事,只有故事,只有故事,没有代码,只有故事,故事好了,接着就这么多东西,然后听好了,函数这块啊,好好去预习,预习函数这个东西是比较关键的一个点,因为我们现在学的东西已经可以去做一个,有一点就是小基础功能的一个软件了,但是你想做的更完美,想代码量弄弄少一点,或者说把工。
100:25
就能写的更完善一点,你跑不了函数,你跑不了函数,然后当函数你学明白了之后,我们开始学习面对象,到那个时候咱们现在写代码都是从上往下,流水绕着啊往下走,是这样的流水让往下走,学了函数,函数怎么回事呢?就是我定一个功能,我什么时候用,什么时候拿,什么时候用,什么时候拿,是功能上的一个一个一个一个一个流程也是从上往下,往下走,但是个面对象,那就是又是一个思想,那个时候就是我要什么样的东西,然后里面会有什么样的功能去给我造好啊做好,我拿那个东西拿过来用就完了,又是一种思想。所以从开始的万恶之源到函数是一个是一个思想上一点点的转变,但是很简单啊,真的非常简单,然后面向对象是你们的一个痛点啊,先给大家打个预防针痛点啊好了,接着了这么多,然后下午三点钟点名,下午三点钟点名,好吧,吃饭去吧。
101:25
来了。
我来说两句