使用父子进程将一个文件或照片的上半部分和下半部分别复制到两个文件中,以字节区分

此处以复制照片为例

#导入相关模块
import OS
from time import sleep
from multiprocessin import Process

#获取文件大小
size = OS.path.getsize("img.jpg")
#为了避免两个进程同时操作父类的同一个文件,拥有相同的属性
#f = open(filename,'rb')

#复制上半部分
def copy_head(filename):
    f = open(filename, 'rb')
    fw = open("upimg.jpg", 'wb')
    n = size // 2
    while True:
        if n < 1024:
            data = f.read(n)
            fw.write(data)
            break
        data = f.read(1024)
        fw.write(data)
        n -= 1024
    f.close()
    fw.close()


#复制后半部分
def copy2(filename):
    f = open(filename, 'rb')
    n = size // 2
    fw = open("downimg.jpg", 'wb')
    f.seek(n, 0)  # 照片没有起始位置因此下半部分无法正常copy
	while True:
        data = f.read(1024)
        if not data:
            break
        fw.write(data)
	f.close()
	fw.close()

#创建进程
p1 = Process(target=copy1, args=("img.jpg",))
p2 = Process(target=copy2, args=("img.jpg",))
#启动进程
p1.start()
p2.start()
#回收进程
p1.join()
p2.join()

备注:照片和文件的操作几乎相同,只是文件名不同。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值