zoukankan      html  css  js  c++  java
  • 利用线程对文件进行分割

    情景:

    将一个文件进行分割以字节进行平均分割成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()
  • 相关阅读:
    Confluence 6 在升级过程中查看合并日志
    Confluence 6 从 WIKI 标记整合到基于 XHTML 的存储格式
    Confluence 6 升级完成后的检查
    Confluence 6 超过当前许可证期限进行升级
    HDU2571--命运---DP
    HDU 2084 DP经典例子---数塔问题
    紫书第二章
    求组合数
    欧拉函数
    二分幂/快速幂
  • 原文地址:https://www.cnblogs.com/yongqi-wang/p/13284841.html
Copyright © 2011-2022 走看看