Páginas

sábado, julho 28, 2018

Python: condense dir file contents into one output file

Dica rápida: juntar conteúdo de todos os arquivos de um diretório em um unico arquivo de output:


import os


def condense_files(path, output_file_name=None):
    """Condense all file contents inside a path into one output file"""
    default_file_name = "CONDENSED"
    output_file_name = output_file_name or default_file_name
    file_list = os.listdir(path)
    if os.path.isabs(output_file_name):
        output_file_path = output_file_name
    else:
        output_file_path = os.path.join(path, output_file_name)
    if os.path.isfile(output_file_path):
        raise FileExistsError("Alread exists %s" % output_file_path)

    if os.path.isdir(output_file_path):
        output_file_path = os.path.join(output_file_path, default_file_name)

    with open(output_file_path, "w") as output_file:
        for file_name in file_list:
            with open(os.path.join(path, file_name), "r") as in_file:
                output_file.write(in_file.read())
    return output_file_path


if __name__ == '__main__':
    import argparse
    parser = argparse.ArgumentParser()
    parser.add_argument('--input')
    parser.add_argument('--output')
    args = parser.parse_args()
    condense_files(args.input, args.output)

Nenhum comentário: