zoukankan      html  css  js  c++  java
  • 文件的基本操作整理

    基本语法

    open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, 
    closefd=True, opener=None)
    

    file表示文件的路径(绝对路径或者相对路径),也可以是要被封装的整数类型文件描述符。(如果是文件描述符,它会随着返回的 I/O 对象关闭而关闭,除非closefd被设为False。)

    mode是一个可选字符串,用于指定打开文件的模式,默认是r,其他含义如下:

    字符 意义
    ‘r' 读取(默认)
    'w' 写入(先已空文件覆盖)
    'x' 排他性创建,如果文件已存在则失效
    'a' 写入,如果文件存在则在末尾追加
    'b' 二进制模式(rb/wb/ab)
    't' 文本模式(默认)(rt/wt/at)
    '+' 更新(可读可写)(r+/w+/a+)

    buffering是一个可选的整数,用于设置缓冲策略。(暂未使用过)

    encoding是用于解码或者编码的编码名称。只在文本模式下使用。虽然初始是None,但实际上默认编码是依赖平台的。

    errors是一个可选字符串参数,用于指定如何处理编码和解码错误(不能在二进制模式下使用)(基本不使用)

    newline仅适用于文本模式,可以是 None,'',' ',' ' 和 ' '。作换行符作用。

    closefdFalse并且给出了文件描述符而不是文件名。那么当文件关闭时,底层文件描述符将保持打开状态。如果给出文件名则 closefd必须为 True (默认值),否则将引发错误。

    opener 可以通过传递可调用的opener来使用自定义开启器。

    示例:

    with open('test.txt', 'w', encoding='utf8') as f: 
    	f.write('This will be written to test')
    
    #使用with可以省略调用 f.close()
    

    文件的内置方法

    # seek(按字节位移)
    with open('test.py', 'rb') as fr:
        fr.seek(1)  # 1表示位移1位,默认从文件头开始
        fr.seek(1, 0)  # 1表示偏移1位,0表示从头开始  # b'xad'
        fr.seek(2, 1)  # 1表示偏移1位,1表示从当前位置开始  # b'xad'
        fr.seek(0, 2)  # 0表示偏移0位,2表示文件末开始,把指针移到文件末
        print(fr.read())  #
    
    # tell(字节)  中 --> b'xe4xb8xad'
    with open('test.py', 'r', encoding='utf8') as fr:
        fr.seek(2, 0)
        print(fr.tell())
    
    # read(n)字符
    with open('test.py', 'r', encoding='utf8') as fr:
        print(fr.read(2))  # 读了6个字节
    
    # truncate字节(截断)
    with open('test.py', 'a', encoding='utf8') as fr:
        fr.truncate(7)  # 把2个字符后面的东西全清空
    
    

    祝大家越来越好!!!

  • 相关阅读:
    快速排序
    推荐!手把手教你使用Git
    「瞻前顾后」写出我心(九十九)
    「减法」写出我心(九十八)
    「焦虑」写出我心(九十七)
    「认知水平」​​​​​​​​写出我心(九十六)
    「成功的事业」写出我心(九十五)
    「爱」​​​​​​写出我心(九十四)
    「赢」​​​​​写出我心(九十三)
    「体面人」​​​​写出我心(九十二)
  • 原文地址:https://www.cnblogs.com/Du704/p/11342098.html
Copyright © 2011-2022 走看看