python io操作 io流

11. IO操作

什么是IO流?
流是一种抽象概念,它代表了数据的无结构化传递。按照流的方式进行输入输出,数据被当成无结构的字节序或字符序列。从流中取得数据的操作称为提取操作,而向流中添加数据的操作称为插入操作。用来进行输入输出操作的流就称为IO流。换句话说,IO流就是以流的方式进行输入输出
input output stream ---------主要用于输入和输出(一般磁盘和内存)
IO操作是一种持久化操作
python操作IO流 ------------ open()
第一个参数:既可以是文本字符也可以字节(文件的路径)
第二个参数:表示的是打开文件的方式
操作open函数的步骤:
f = open(“path”,“r”)
f.read()
f.close()
IO流的分类:
根据流动的方向(站在内存的角度):输入流和输出流
根据数据类型:字节流(图片、视频、音频等)和字符流

流的分类
r:输入流
w:输出流
b:字节流
t:字符流

file

表示一个文件的具体路径(也可以是文件名称)

mode

表示一个字符串(mode默认是tr)

r:read表示输入流
w:write表示输出流
t:表示字符流
b:表示字节流
a:表示追加输出

encoding

表示编码,主要用来表示字符的编写格式

IO对象的方法

close():关闭流
closed():判断流是否关闭
encoding():编码
flush():刷新流
read():读取输入
readline():读取一行数据
readlines():读取多行
write():写入数据
writelines(): 多行写入

注意:IO流一定要及时关闭,避免资源的占用以及避免出现异常

11.1 IO操作字符数据

在这里插入图片描述

在这里插入图片描述

不覆盖原本的内容:
在这里插入图片描述
mode=“r” “w” “a” ------ 本质”rt“ “wt” “at” t ------------ text

11.2 IO操作字节数据

b ------ 字节 rb wb ab
字节可以读取字符数据,相反不可以
注意:字节数据过大的时候,不建议一次性读取
数据的备份:

import  uuid
from os import path
def copy_file():
    src=input("请输入你要备份的文件路径")
    dest=input("请输入你要保存的文件路径")
    f=open(src,"rb")
    #f2=open(dest,"wb")
    filename=src[src.rfind("\\")+1:]
    random_uuid=uuid.uuid4().hex
    print(random_uuid)
    filename=random_uuid+filename
    print(filename)
    f2=open(path.join(dest,filename),"wb")
    #f2.write(f.read())
    while True:
        data=f.read(1024*1024)
        if data==b"":
            print("完成")
            break
        else:
            f2.write(data)
    f.close()
    f2.close()
if __name__=="__main__":
    copy_file()
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值