利用线程对文件进行分割
2021-04-20 18:28
标签:__name__ main int else while 文件的 不可 targe 线程 情景: 将一个文件进行分割以字节进行平均分割成2份存入两个文件: 利用线程对文件进行分割 标签:__name__ main int else while 文件的 不可 targe 线程 原文地址:https://www.cnblogs.com/yongqi-wang/p/13284841.htmlimport os
import multiprocessing
#读取文件的大小
number=os.path.getsize(‘dict.txt‘)
print(number)
#读前半部分
def file_up(number):
n = number // 2
#文件拷贝模板
with open(‘dict.txt‘) as up:
with open(‘dict_up‘,‘w‘) as wup:
#分割文件进行读取写入(当文件过大时不可能将其全部读取出来必须分割)
while n>=1024:
wup.write(up.read(1024))
n-=1024
else:
wup.write(up.read(n))
return
#读前半部分
def file_down(number):
n = number // 2
#文件拷贝
with open(‘dict.txt‘) as down:
#分割文件进行读取写入(当文件过大时不可能将其全部读取出来必须分割)
down.seek(number//2)
with open(‘dict_down‘,‘w‘) as wdown:
while n>=1024:
wdown.write(down.read(1024))
n-=1024
else:
wdown.write(down.read(n))
return
#在wds和mac系统下必须用main包裹进程否则报错(这与系统差异有关)
if __name__ == ‘__main__‘:
#创建线程对象
up=multiprocessing.Process(target=file_up,args=(number,))
down=multiprocessing.Process(target=file_down,args=(number,))
#启动线程
up.start()
down.start()
#结束线程(也叫堵塞线程)
up.join()
down.join()