学习Python 九(IO操作)

1 篇文章 0 订阅

12. IO操作

什么是IO流
input output stream ---------主要用于输入和输出(一般磁盘和内存)
IO操作是一种持久化操作
python操作IO流 ------------ open()
第一个参数:既可以是文本字符也可以字节(文件的路径)
第二个参数:表示的是打开文件的方式

操作open函数的步骤
f = open(“path”,“r”)
f.read()
f.close()

IO流的分类
根据流动的方向(站在内存的角度):输入流和输出流
根据数据类型:字节流(图片、视频、音频等)和字符流

12.1 IO操作字符数据

在这里插入图片描述

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

12.2 IO操作字节数据

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

数据的备份:
方法一:

def copy_file(name,dest):
	f1=open(name,'rb')
	f2=open(dest,'wb')
	f2.write(f1.read())
if __name__ == '__main__':
	copy_file("C:\\Users\\dell\\aa.txt","C:\\Users\\dell\\c.txt")

方法二:

def copy_file(name,dest):
	f=open(name,'rb')
	f2=open(dest,'wb')
	# f2.write(f.read())
	while True:
		#以兆M为单位进行读取
		data=f.read(1024*1024)
		if data==b'':
			print('读取完成')
			break
		else:
			f2.write(data)
	f.close()
	f2.close()
if __name__=='__main__':
	copy_file("E:\\360downloads\\a.jpg","C:\\Users\\dell\\d.jpg")

方法三:

from os import path
def copy_file():
	st="C:\\Users\\dell\\d.jpg"
	print("输入需要备份的文件:C:\\Users\\dell\\d.jpg")
	dest="C:\\Users\\dell\\Desktop"
	print("输入要保存的路径:C:\\Users\\dell\\Desktop")
	f=open(st,'rb')
	filename=st[st.rfind("\\")+1]
	print(filename)
	f2=open(path.join(dest,filename),'wb')

	while True:
		#以兆M为单位进行读取
		data=f.read(1024*1024)
		#读到空为止  ''  b''
		if data==b'':
			print('读取完成')
			break
		else:
			f2.write(data)
	f.close()
	f2.close()
if __name__=='__main__':
	copy_file()

方法四:


from os import path
import uuid
def copy_file():
	#src="C:\\Users\\dell\\d.jpg"
	src = input("请输入你要备份文件的路径:")
	#dest="C:\\Users\\dell\\Desktop"
	dest = input("输入你要保存的路径:")
	f = open(src,"rb")

	filename = src[src.rfind("\\") + 1:]
	#时间戳也可不重复
	random_uuid = uuid.uuid4().hex
	print(random_uuid)

	filename = random_uuid + filename
	print(filename)
	f1 = open(path.join(dest,filename),"wb")

	# f1.write(f.read())
	while True:
		#以M为单位进行读取
		data = f.read(1024 * 1024)
		#读到空的时候  b""   ""
		if data == b"":
			print("读取完成")
			break
		else:
			f1.write(data)
	f.close()
	f1.close()
if __name__=='__main__':
	copy_file()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值