文件 I/O
一. 文件的分类
广义上说文件是按照文件的类型进行分类:
如视频文件、音频文件、图片文件、文档文件等 等各种形式的文件,在这样的分类情况下~很明确使用对应的软件打开对应的文件。
视频文件:视频播放器 音频文件:网易云音乐…
图片文件:画图、照片… 文档文件:word 文档,记事本,wps 软件
表格文件:excel,wps 表格软件
狭义上的文件是按照组成文件的数据格式分类:
文本文件
二进制文件
文本文件:数据是按照字符组成的文件,使用记事本可以正常打开
二进制文件:数据是按照字节组成的文件,使用记事本打开会出现乱码 图片文件、音频文件、视频文件、word 文档
二. 文件读写操作
1.文件 IO
2. open()函数
3、 文本文件读写
4、 二进制文件读写*
二进制文件和文本文件不同,不需要 encoding 编码
5、 复制-粘贴案例
"""
作者:饶家兴
时间:2020.2.24
内容:文件的复制
"""
import os, time
"""文件复制函数"""
def copy(file1, file2):
# 读取被复制文件1
with open(file1, "rb") as f1:
# 记录1下当前读取文件的大小
target_src = os.path.getsize(file1)
print(f"您要复制的文件为{file1},大小为{target_src/1024/1024}k")
# 声明一个写入的速度
buffer = 1024*1024
# 写入要复制的文件
with open(file2, "wb") as f2:
while True:
# 读取1次
content = f1.read(buffer)
# 读到结尾为b''时,文件读取完成
if content == b'':
print("复制完成,即将退出")
break
# 写入一次
f2.write(content)
current_src = os.path.getsize(file2)
percent = (current_src/target_src)*100
print(f"当前复制文件的进度为{percent:5.3}%") # 5.3:5为宽度,3为小数点位数
copy("D:/Note/Python全笔记/Python第一阶段/day11/被复制的文件/01-动态代理和cglib代理.mp4"
, "D:/Note/Python全笔记/Python第一阶段/day11/复制到的文件/123.mp4")