python文件处理

#打开模式

w write 写入模式
  没有则创建,存在则清空后在写入。

r read 读取模式

a append 追加模式

x xor 异或模式
  文件已存在则报错! 不存在的则创建


#扩展模式
+ plus 增强模式
b bytes模式(二进制) 如图片,视频,音乐


模式一共16种

w,w+,wb,wb+
r,r+,rb,rb+
a,a+,ab,ab+
x,x+,xb,xb+


字符集

fp = open("文件名",mode=模式,encoding=编码集)

fp = open("ceshi1.txt",mode="w",encoding='utf-8')

fp.write('把大象塞进去')

fp.close()


转化成二进制字节流

将字符串和字节流(Bytes)类型进行转换(参数写成转化的字符编码格式)
encode()编码 将字符串转化成字节流(Bytes)
decode()解码 将字节流转化成字符串

复制图片、视频、音乐 二进制字节流模式

open=('集合.png',mode='rb')
str_bytes=fp.read()
fp.close()

创建新图片文件

fp = open('集合2.png',mode='wb')
fp.write(str_bytes)
fp.close()

#文件的扩展模式
#(utf-8 编码格式 一个中文字符占用三个字节,一个英文或符号占用一个字节)
#read() 功能: 读取字符的个数(里面的参数代表字符的个数)
#seek() 功能: 调正指针的位置(里面的参数代表字符的个数)
#tell() 功能: 当前光标左侧所有的字节数。

fp.seek(n,模式) :n指的是移动的字节个数
0:参照物是文件开头位置,只有0模式在t模式下使用。
f.seek(19,0)
1:参照wu是当前指针所在位置
f.seek(19,1)
2: 参照物是文件末尾位置,应该倒着移动
f.seek(-9,2)

fp.seek(0) 把文件指针调正到文件的开头。
fp.seek(0,2) 把文件指针移动到文件的末尾。


处理大文件时使用seek(),使用seek()实现linux tail命令功能

#改写复制图片操作

with open('集合.png',mode='rb') as pf1, open('集合3.png',mode='wb') as fp2:
    #读取内容
    str_var = fp1.read()
    #写入
    fp2.write(str_var)


实现tail -f的功能

import time
import datetime

for i in range(1,100):
    msg = str(i)
    with open(r'b.txt',mode='a+') as f:
        f.write(msg + "\n")
        f.flush()
    f.close()
    time.sleep(1)
    with open(r'b.txt',mode='br') as pf:
        while true:
            line = pf.readline()
            if len(line) == 0:
                time.sleep(0.3)
            else:
                print(line.decoding=('utf-8'),end='')


        


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值