python基础学习8----文件基本操

发布时间:2019-03-05 12:11:25编辑:auto阅读(1856)

    一.文件的打开,open函数

    f = open(file_name,mode)#创建文件对象
    

    打开模式有很多种

      1. 'r': 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。

      2. 'r+': 打开一个文件用于读写。文件指针将会放在文件的开头,但写入内容会写到文件内容末尾。

      3. 'w': 打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。

      4. 'w+': 打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。

      5. 'a': 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。

      6. 'a+': 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。读文件时从文件内容的末尾读,因为文件指针放在文件的结尾。

    with open as语句

    不必写f.close(),会自动在末尾关闭文件,即使在文件操作中发生错误

    with open('/path/to/file', 'r') as f:
        print(f.read())
    

      

    二.文件对象的属性

      file.closed : 如果文件已被关闭返回true,否则返回false。

      file.mode : 返回被打开文件的访问模式。

      file.name : 返回文件的名称。

    三.文件的关闭

    file_object.close()
    

    四.文件的读写操作

    write方法

    file_object.write(string)
    

    read方法

    file_object.read(count)#count为字节数,不填则读到文件末尾
    

    readlines方法用于读取所有行

    file_object.readlines( ) 
    #文件内容如下
    #12345
    #67890
    #09876
    #54321
    p=f.readlines()
    print(p)
    #输出为['12345\n', '67890\n', '09876\n', '54321']
    

    五.文件的定位

    tell方法

    print(file_object.tell())#输出文件内的当前位置, 即下一次的读写会发生在文件开头多少字节之后。
    #根据编码的不同,每个汉字所占的字节也不同,utf-8中一个汉字占3个字节,此处的数量和read函数的参数意义不同,read函数参数中1代表一个字符
    #例如以下为文件内容
    #这是汉字

    print(file_object.read(3))#输出为这是汉

    seek方法

    seek(offset ,from)方法改变当前文件的位置。offset变量表示要移动的字节数。from变量指定开始移动字节的参考位置。

    如果from被设为0,这意味着将文件的开头作为移动字节的参考位置。如果设为1,则使用当前的位置作为参考位置。如果它被设为2,那么该文件的末尾将作为参考位置。

    file_object.seek(3)#from参数默认为0
    

     六.截断文件

    truncate() 方法用于截断文件,如果指定了可选参数 size,则表示截断文件为 size 个字节。 如果没有指定 size,则从当前位置起截断;截断之后 size 后面的所有字符被删除。

    file_object.truncate(size)
    

    七.flush方法

    flush() 方法是用来刷新缓冲区的,即将缓冲区中的数据立刻写入文件,同时清空缓冲区,不需要是被动的等待输出缓冲区写入。

    一般情况下,文件关闭后会自动刷新缓冲区,但有时你需要在关闭前刷新它,这时就可以使用 flush() 方法。

    file_object.flush()
    

      

     

    未完待续

     

关键字