利用线程对文件进行分割

2021-04-20 18:28

阅读:386

标签:__name__   main   int   else   while   文件的   不可   targe   线程   

情景:

将一个文件进行分割以字节进行平均分割成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()

 

利用线程对文件进行分割

标签:__name__   main   int   else   while   文件的   不可   targe   线程   

原文地址:https://www.cnblogs.com/yongqi-wang/p/13284841.html


评论


亲,登录后才可以留言!