首页 > 代码库 > python--文件和流

python--文件和流

一、打开文件:

       open(name[, mode[, buffering]]):name指文件名,mode指模式参数,buffering指缓冲。

       1、如果没有找到则会抛异常。

       技术分享

       2、文件模式:mode

            ‘r‘:读模式

            ‘w‘:写模式

            ‘a‘:追加模式

            ‘b‘:二进制模式,比如声音剪辑或者图像则需要使用二进制模式。

            ‘+‘:读、写模式。

         3、缓冲:buffering。

               控制着文件的缓冲,如果参数是0或者False,I/O输入输出就是无缓冲的(所有的读写直接针对硬盘),如果是1或者True,I/O就是有缓冲的(意思是使用内存代替硬盘,让程序更快,只有使用flush或者close时才会更新到硬盘)。

                大于1的数字代表缓冲区的大小(单位字节),-1或者任何负数代表使用默认的缓冲区大小。

 

二、基本的文件方法:

         1、读写:

         技术分享

         技术分享

 

          2、管道输出:Linux Shell管道符|的作用,将一个命令的标准输出和下一个命令的标准输入连接在一起。

               cat somefile.txt | python somescript.py | sort:somescript.py会从它的sys.stdin中读取数据(cat somefile.txt写入的),并把结果写入它的sys.stdout中。

             

           3、随机访问:

                seek(offset[, whence]):把当前位置(进行读写的位置)移动到由offset和whence定义的位置。offset表示偏移量必须非负数。whence:默认0表示偏移量从文件开头开始计算的。 whence设置为1(相对于当前位置移动,此时偏移量offset可以是负数)或者2(相对于文件结尾移动)。

               技术分享

               tell方法:返回当前文件的位置。

               技术分享

 

           4、读写行:file.readline读取单独的一行(从当前位置开始直到一个换行符出现,也读取换行符)

               技术分享

              技术分享

           

           5、关闭文件:

                1、可以使用try/finally语句:

                      try:

        #write data to your file

                       finally:

        #file.close()

                  2、使用with语句:

                       from __future__ import with statement

                       with open(“somefile”) as somefile

        do something(somefile)

 

               6、使用文件的基本方法:

                     技术分享

                     技术分享

                     技术分享

 

                7、对文件内容进行迭代:

                      1、使用while循环按字节处理:

                       技术分享

                       技术分享

 

                      2、按行操作:

                      技术分享

                      技术分享

 

                      3、读取所有内容:

                           前提:文件不是很大。

                           使用read迭代每个字符:

                           技术分享

                            技术分享

                            使用readlines迭代行:

                            技术分享

                             技术分享

 

                           4、使用fileinput实现懒惰行迭代:

                              技术分享

                              技术分享

 

                            5、文件迭代器:文件对象是可迭代的,可以直接在for循环中使用它们,从而对它们进行迭代。

                             技术分享

 

                                

              

               

 

       

       

python--文件和流