zoukankan      html  css  js  c++  java
  • 文件处理之处理模式及其黑魔法

    本节内容


     

    1.文件打开格式与编码问题

    2.文件处理模式

    3.文件的黑魔法

    4.文件光标移动方式

    1.文件打开格式与编码问题


    文件的打开格式:不加指定模式则默认只读模式,这里需要特殊注意指定编码问题,若不指定,则open函数默认系统的编码,系统的编码就是如果你是windows系统就默认Windows系统的编码

    文件有打开就有关闭,若只打开不关闭会占用内存

    f = open('文件名' , encoding = 'utf-8')        #f为‘文件变量‘  
    f.close()    

    以上打开方式麻烦,还有另一种方式而且还能同时打开多个文件且不用自动关闭文件

    with open ('文件名' ,'模式', encoding = 'utf-8') as 文件变量:
        文件处理操作...

    2.文件处理模式

    模式描述
    r 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
    rb 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。一般用于非文本文件如图片等。
    r+ 打开一个文件用于读写。文件指针将会放在文件的开头。
    rb+ 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件如图片等。
    w 打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
    wb 以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
    w+ 打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
    wb+ 以二进制格式打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
    a 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
    ab 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
    a+ 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
    ab+ 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。

    3.文件的黑魔法

    文件对象file_obj内置了操作文件的方法,常用的读写方法有:

    方法名含义
    file_obj.read() 默认读取文件所有内容。
    file_obj.readline() 默认读取一行内容。
    file_obj.readlines() 默认读取文件所有行,以列表的形式返回。
    file_obj.write(s) 写入内容s。
    file_obj.writelines(lines) 将序列lines中的所有元素写入。

    4.文件光标移动方式

    每个文件对象内部都维护一个文件指针,以r或w模式打开文件时指针指向文件开头,以a模式打开文件时指针指向文件末尾,读写操作都是基于上一次指针所在位置的基础上进行偏移的。

    我们也可以使用方法file_obj.seek(offset,whence)控制指针的偏移:

    • offset代表偏移量,单位为字节。
    • whence默认值的为0,代表以文件开头为参照物。
    • whence=1则代表以当前位置为参照物。
    • where=2则代表以文件末尾为参照物  (倒序)
  • 相关阅读:
    949. Largest Time for Given Digits
    450. Delete Node in a BST
    983. Minimum Cost For Tickets
    16. 3Sum Closest java solutions
    73. Set Matrix Zeroes java solutions
    347. Top K Frequent Elements java solutions
    215. Kth Largest Element in an Array java solutions
    75. Sort Colors java solutions
    38. Count and Say java solutions
    371. Sum of Two Integers java solutions
  • 原文地址:https://www.cnblogs.com/echoboy/p/8984849.html
Copyright © 2011-2022 走看看