美文网首页百人计划
Python文件操作函数-学习笔记

Python文件操作函数-学习笔记

作者: 霞姐时间管理 | 来源:发表于2017-11-07 21:58 被阅读22次

    一、Python常用文件操作函数

    1.read() 将文件内容作为一个大的字符串全部读出来
    2.readline() 读取文件中的一行内容
    3.readlines() 将文件内容作为一个大的列表全部读出来,每个成员是文件中的某一行
    4.write() 将字符串写入文件
    5.writelines(list) 将列表写入文件
    6.close() 文件关闭
    7.tell() 当前游标的位置
    8.seek(offset[,where]) 把文件指针移动到相对于where的offset位置,where为0表示文件开始处,这是默认值;1表示当前位置;2表示文件结尾
    9.flush() 刷新输出缓存,把缓冲区的内容写入硬盘
    10.truncate([size]) 截取文件,使文件大小为size

    二、读操作举例

    当前test.txt内容如下:


    1.png
    print fp.tell()
    0
    fp.readline()
    'aaaaa\n'
    print fp.tell()
    7
    fp.seek(0)  #将鼠标指针移动至文件开始处
    print fp.tell()
    0
    
    02.png 注:fp.seek(-3,1),1表示当前位置,相对于当前位置再往前移动3位,换行符占2个位置。当前鼠标位置在aaaa\n之后,往前移动3位到 03.png

    ,所以当前鼠标位置在4。
    读操作完整代码:

    04.png

    三、写操作举例

    fp=open("E:/test2.txt",'w') #首先会创建一个test2.txt文件(以w方式打开,如没有该文件会自动创建。W方式打开注意:以写方式打开文件,会清空原有内容,进行写入)


    05.png 06.png

    四、truncate函数举例

    fp=open("E:/test2.txt",'a')#以追加方式打开,否则会清空原始内容
    fp.truncate(2)
    fp.close()
    

    test2.txt内容如下:


    07.png

    五、Python flush()刷新缓冲区

    一般的文件流操作都包含缓冲机制,write方法并不直接将数据写入文件,而是先写入内存中特定的缓冲区。flush方法是用来刷新缓冲区的,即将缓冲区中的数据立刻写入文件,同时清空缓冲区。


    08.png

    说明:这时“ddddd”没有写入到test.txt中,只写到了缓冲区。
    让其立即写入,应用flush()函数。
    fp.flush()

    09.png

    完整代码如下:

    10.png
    附:如何向文件中写入数据

    1、 文件存在缓冲区中,能看到的话,应用close()函数将文件关闭。
    2、 立即将文件写入文件中,应用flush()函数刷新缓冲区。

    知识拓展:

    为了保证无论是否出错都能正确地关闭文件,我们可以使用try ... finally来实现:

    try:
        f = open('D:/zcxtest/test.txt', 'r')
        print f.read()
    finally:
        if f:
            f.close()
    

    但是每次都这么写实在太繁琐,Python引入了with语句来自动帮我们调用close()方法:

    with open('D:/zcxtest/test.txt', 'r') as f: 
     #Windows的路径分隔符\与代码中的/要加以区别
        print f.read()
    
    with open('D:/zcxtest/test.txt','w') as f:  
        f.write('Hello,world!')
    

    代码更加简洁,并且不必调用f.close()方法。with...as语法是用来代替传统的try...finally语法的。 所以,使用with语句操作文件IO是个好习惯。
    with...as详细介绍点击

    相关文章

      网友评论

        本文标题:Python文件操作函数-学习笔记

        本文链接:https://www.haomeiwen.com/subject/jxkdmxtx.html