python 文件处理 -- 01 文件打开&读取&写入&关闭&指针

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 文件处理 -- 01 文件打开&读取&写入&关闭&指针相关的知识,希望对你有一定的参考价值。

1.文件打开

1.1.文件打开方法

open(name[,mode[,buff]] ->file

        name--文件路径

        mode--打开方式

        buff--缓冲buffer的大小

        file--返回file类型的对象

        重要:必须要写close()方法

1.2文件打开方式

技术分享

另:

        打开二进制文件(如图片)时,需使用如下方式

                ‘rb‘、‘wb‘、‘ab‘、‘rb+‘、‘wb+‘、‘ab+‘

2.文件读取

2.1文件读取方法

read([size])

         读取size个字节,默认 读取全部。

         如果size小于等于文件字节数,则返回size大小的内容,且游标在读取完之后的位置

readline([size])

         读取从当前游标算起的一行。

         如果size小于当前行的字节数,则返回size大小的内容,且游标在读取完之后的位置

readlines([size])

         一次性读取完文件,返回由每一行组成的list

         注意:

                  size其实是无用的,返回的list长度不由它决定,而是由io模块化总的io.DEFAULT_BUFFER_SIZE决定,而且不是size=3就读取3io.DEFAULT_BUFFER_SIZE字节大小的内容

                  实际上不是一次性读取完文件,只是读取io.DEFAULT_BUFFER_SIZE个字节大小(如8192)的内容,然后返回由比8192稍大或相等的字节大小的内容(保证list[-1]是完整一行)所组成的列表。

iter

         使用迭代器按行读取文件(推荐方法

         不受io.DEFAULT_BUFFER_SIZE的限制

>>> f=open("helloworld.py")

>>> iter_f=iter(f)

>>> line=0

>>> for i in iter_f:

...     line+=1

...

>>> line

4

3.文件写入

3.1文件写入方法

         write(str)

                  将字符串写入文件

         writelines(sequence_of_strings)

                  提供一个str或由str组成的迭代器,将每个str相连写入文件中

                  注:必须是有字符串所组成的序列,否则会报错

3.2linux写缓存

         技术分享

4.文件关闭

4.1为什么要关闭文件?

将缓存在内存中的文件写入到磁盘

linux中,每个进程能打开的文件数是有限的,如果超过这个限制,那么打开文件就会失败。

注:

         查看某进程的限制

         cat /proc/${pid}/limits

        技术分享

         linux进程打开文件数限制

                  http://www.cnblogs.com/aka-blog/articles/filemax.html

4.2file.fileno()

文件描述符,用来描述当前文件被打开(未关闭)多少次。

如果超过限制,则会报错IO Error:Too many open files: ‘xx‘

5.文件指针

5.1seek()函数

         移动文件指针

         seek(offset[, whence]) -> None

                  offset--偏移量,可以为负数

                  whence--偏移相对位置。

                           可以使用0,1,2;

                           也可以使用OS模块的宏定义

                                    os.SEEK_SET(文件起始位置0)

                                    os.SEEK_CUR(文件当前位置1)

                                    os.SEEK_END(文件结束位置2)

5.2举例

>>> f=open(‘helloworld.py‘,‘r+‘)

>>> c=f.read()

>>> c

helloword123\\nhelloword456\\nhelloword789‘

>>> f.seek(0,os.SEEK_SET)

>>> f.write(‘helloppt‘)

>>> f.seek(0,os.SEEK_SET)

>>> c=f.read()

>>> c

hellopptd123\\nhelloword456\\nhelloword789‘

>>> f.close()

以上是关于python 文件处理 -- 01 文件打开&读取&写入&关闭&指针的主要内容,如果未能解决你的问题,请参考以下文章

Python从门到精通:文件处理-01-文件I/O

Autotools 处理本地与已安装数据文件的方法

文件处理

python 中有关文件处理

(Python第六天)文件处理

Python文件处理小结