将大目录拆分为文件块

2024-09-28 05:17:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个目录结构,里面有很多文件(~100万),我想把它们压缩成10万个文件。到目前为止,我已经有了这个,它创建了垃圾文件——当我解压它们时,看起来所有的文件都被合并成一个长文件而不是单个文件——我被卡住了。任何帮助都将不胜感激

    dirctr = 1
    for root, dirs, files in os.walk(args.input_dir, followlinks=False):
        counter = 1
        curtar= args.output_dir + 'File' + str(dirctr) + '.gz'
        tar = tarfile.open(name=curtar, mode="w:gz")
        for filename in files:
            if ((counter -1) % args.files_per_dir) == 0:
                if tarfile.is_tarfile(curtar):
                    tar.close(curtar)
                dirctr = dirctr + 1
                curtar= args.output_dir + 'File' + str(dirctr) + '.gz'
                
                tar.open(name=curtar, mode="w:gz")
            tar.add(os.path.join(root,filename))
            counter = counter + 1
    tar.close(curtar)

Tags: 文件inforoutputosdircounterargs

热门问题