利用线程对文件进行分割

情景:

将一个文件进行分割以字节进行平均分割成2份存入两个文件:

import 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()
原文地址:https://www.cnblogs.com/yongqi-wang/p/13284841.html