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\n',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=)

猜你喜欢

转载自www.cnblogs.com/douyunpeng/p/12691722.html