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()
  • 相关阅读:
    Ubuntu解压缩命令
    小语种优化策略
    外贸seo常用Zen Cart数据库mysql批量执行命令
    ASP Request.ServerVariables
    centos linux 下 crontab e 命令插入及保存
    AJAX 传值给后台
    partial class
    Jquery 实现弹出层
    abstract class
    SQL锁表
  • 原文地址:https://www.cnblogs.com/yongqi-wang/p/13284841.html
Copyright © 2011-2022 走看看