하나의 큰 파일을 작은 크기(10MB) 크기로 잘라서 여러개 파일로 저장하는 기능이다.

import os

def file_split(filepath1, filename1):
    # 예: 10MB
    size_limit = 1024*1024*10
    with open (filepath1 + filename1, 'rb') as fi:
        i = 0
        b = fi.read(size_limit)
        while b != b'':
            with open (filepath1 + filename1 + '.' + str(i), 'wb') as fo:
                fo.write(b)
                fo.close()
            i = i + 1
            b = fi.read(size_limit)
        fi.close()

여러 개 파일로 나누어서 저장된 파일을 다시 하나의 큰 파일로 이어 붙이는 기능이다.

def file_join(filepath1, filename1):
    filepathname = filepath1 + filename1
    with open(filepathname, 'wb') as fo:
        i = 0
        while os.path.exists(filepathname + '.' + str(i)) :
            with open(filepathname + '.' + str(i), 'rb') as fi:
                fo.write(fi.read())
            i = i + 1
        fo.close()

테스트를 수행한다.

if __name__ == "__main__" :
    file_split('d:/dev/', '큰 파일.pdf')
    file_join('d:/dev/', '큰 파일.pdf')

 

+ Recent posts