gzip-2-soft.py 2.24 KB
# -*- coding: UTF-8 -*-

from optparse import OptionParser
import os
import sys
import gzip
import shutil

__author__ = 'CMendezC'

# Objective: uncompress gzip soft file to text soft file

# Parameters:
#   1) --inputPath input path
#   2) --outputPath output path

# Ouput:
#   1) Text soft file

# Execution:
# python gzip-2-soft.py
# --inputPath C:\Users\cmendezc\Documents\GENOMICAS\gitlab_automatic-extraction-growth-conditions\data-sets\gzip-data
# --outputPath C:\Users\cmendezc\Documents\GENOMICAS\gitlab_automatic-extraction-growth-conditions\data-sets\soft-data
# python gzip-2-soft.py --inputPath C:\Users\cmendezc\Documents\GENOMICAS\gitlab_automatic-extraction-growth-conditions\data-sets\gzip-data --outputPath C:\Users\cmendezc\Documents\GENOMICAS\gitlab_automatic-extraction-growth-conditions\data-sets\soft-data

###########################################################
#                       MAIN PROGRAM                      #
###########################################################

if __name__ == "__main__":
    # Parameter definition
    parser = OptionParser()
    parser.add_option("--inputPath", dest="inputPath",
                      help="Path to read input files", metavar="PATH")
    parser.add_option("--outputPath", dest="outputPath",
                      help="Path to place output files", metavar="PATH")

    (options, args) = parser.parse_args()
    if len(args) > 0:
        parser.error("None parameter entered.")
        sys.exit(1)

    # Printing parameter values
    print('-------------------------------- PARAMETERS --------------------------------')
    print("Path to read input files: " + str(options.inputPath))
    print("Path to place output files: " + str(options.outputPath))

    # Walk directory to read files
    for path, dirs, files in os.walk(options.inputPath):
        for f in files:
            if f.endswith(".gz"):
                print("Processing...{}/{}".format(options.inputPath, f))
                try:
                    with gzip.open(os.path.join(options.inputPath, f), 'rb') as f_in:
                        with open(os.path.join(options.outputPath, f.replace('.soft.gz', '.txt')), 'wb') as f_out:
                            shutil.copyfileobj(f_in, f_out)
                except:
                    pass