关于python打开文件你所不知道的

    python打开文件是否为动态获取文件的内容?什么意思呢? 就是我写一个程序,打开一个文件,一直对他循环读取,我在另一个程序,打开这个文件,以a的模式追加内容,那么第一个程序是否能读取到第二个程序追加的内容呢?  还是说第一次读取的文件  仅仅是一开始读到的内容呢。

  建设一个file文件,内容就为吧lqwzs

 

这个程序就是读文件,第一次读取全部的内容,注意!!!:读完后文件的seek(光标位置)停在末尾,再读的话就是从原来文件末尾读,那么能不能读到内容呢?接下来看

运行一下:

 很容易理解,把内容读取到了

 这个程序就是在不断的追加内容,很容易理解. 接下来就是关键了!!!,我在文件末尾添加内容。

 那么能否被读取到呢

请看:

 挖草,怎么就被读到了呢,什么原因呢,python读取文件是动态的嘛,什么原因呀,我的理解就是,python一切皆对象,文件是对象,也是容器吧,他对应的内存地址,是固定的,但是由于这个内存地址是容器型的(我觉得我再瞎扯  呵呵呵),内部是可以改变的,就像list之类的吧,这样其他程序在添加的,增加了文件内存地址所指向的内容,内存地址本身没有改变,所有就能读到吧,我不禁想到了之前遇到的一个习题:

     哭了,怎么就这样了阿 ,让我来瞎扯一下吧,在函数调用的时候,b是一个默认的列表容器,指向一个内存地址,在经过fun(1),b添加了一个元素1,此时b指向的内存地址并没有改变,只不过内存地址里面内容改变了,b的内存地址并没有改变,第二次调用这个函数,还是用的是b的内存地址,此时的b为[1,2,1],经过第二次调用,添加一个元素,就这样了[1, 2, 1, '阿这,阿这,又是为什么呢']   

    注: lqw的第一个博客园文章,第一次,写了一个小时,发现对知识的理解不够深,感觉是明白了,描述起来,模模糊糊,不够准确吧     要加油那

,

                         

 

原文地址:https://www.cnblogs.com/liqiangwei/p/13840685.html