zoukankan      html  css  js  c++  java
  • day18 文件处理b(byte)模式

    文件处理的byte模式

    f=open('test2.py')函数默认是‘rb’模式,即为读取模式;

    #读取一个byte模式的文件 rb
    f=open('test2.py','rb')#前提是存在这个可操作的对象
    data=f.read()
    print(data)#打印出来的是byte二进制的模式;
    print(data.decode('utf-8'))#按照utf-8进行编码后的打印
    f.close()

    #byte模式写入文档内容的操作 wb

    f=open('test2.py','wb')
    f.write(bytes('aaaa
    ',encoding='utf-8'))#方法一
    f.write('山东省'.encode('utf-8'))#方法二

    #byte模式追加文档内容的操作 ab

    f=open('test2.py','ab')
    f.write('泰安市'.encode('utf-8'))

    #文件拷贝工具  rb+wb

    with open('test2.py','rb') as f1,open('test3.py','wb') as f2:
        res = f1.read()
        f2.write(res)

    w模式下while循环读文件,readline(一次只能读一行)

    with open(r'g.txt',mode='rt',encoding='utf-8') as f:
        res1=f.readline()
        res2=f.readline()
        print(res2)
    #使用while循环读取
        while True:
            line=f.readline()
            if len(line) == 0:
                break
            print(line)

    b模式下,一次性多行读写。存为列表形式。readlines

    with open(r'g.txt',mode='rt',encoding='utf-8') as f:
        res=f.readlines()
        print(res)

    read是按照文件内容直接读出,readlines是将文件内容以列表的形式读出

    了解:

    with open('../../../../Desktop/Python课堂笔记/day12笔记/h.txt', mode='wt', encoding='utf-8') as f:
        print(f.readable())      判断文件是否可读
        print(f.writable())     判断文件是否可写
        print(f.encoding)        格式,如‘utf-8,’如果文件打开属性为b,则没有该属性
        print(f.name)            输出绝对路径
    
    print(f.closed)           判断文件是否关闭

    f.closed

    f.encoding 

    f.flush #立即写入硬盘

    f.tell # 获取文件指针当前位置

    f.readlines

    f.seek #指针的移动,使用b的方式操作

    模式0,即b=0,参照物是文件开头位置,

    模式1,即b=1,参照物是当前指针位置,

    模式2,即b=2,参照物是文件结尾

    f.truncate #截断

    练习:

    实现动态时刻更新日志的效果

    import time
    with open('acess.log',mode='rb')as f:
        f.seek(0,2)
        while 1:
            line = f.readline()
            if len(line) ==0:
                time.sleep(0.3)
            else:
                print(line.decode('utf-8'),end=)

     使用seek移动光标读取文件最后一行内容

    f= open('test2.py','rb')
    for i in f:
        offset = -2
        n = 0
        while True:
            f.seek(offset,2) #移动光标到倒数第‘offest’个字节
            lis = f.readlines()#读取当前光标下,后续的数行内容,输出为列表
            if len(lis) >1:#判断当前读取出的列表长度是否是大于1
                print('最后一行内容是:',lis[-1].decode('utf-8'))#打印最后一行内容
                break
            else:
                offset*=2 #光标距离最后一个位置自增2倍
  • 相关阅读:
    Ajax
    PS将图标变灰
    圆角
    前端性能优化最佳实践(转)
    jquery $(document).ready() 与window.onload的区别
    js阻止冒泡及jquery阻止事件冒泡示例介绍
    CSS选择器、CSS hack及CSS执行效率
    Github快速入门手册
    Windows 系统下Git安装图解
    史上最全github使用方法:github入门到精通
  • 原文地址:https://www.cnblogs.com/douyunpeng/p/12691722.html
Copyright © 2011-2022 走看看