此处以复制照片为例
#导入相关模块
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()
备注:照片和文件的操作几乎相同,只是文件名不同。