i'm a python newbie & wrote my first script, can someone critique it?

mad scientist jr mad.scientist.jr at gmail.com
Sat Jun 11 14:14:00 EDT 2016


For those who don't want to have to wade through comments, here is a version without so many comments:

# For Python 3.x
# This script creates multiple numbered empty folders
# in the desired location. To change the folder names
# or location, edit function get_default_options.

import datetime
import os
import errno
import sys

###############################################################################
# EDIT VALUES HERE TO CUSTOMIZE THE OUTPUT
def get_default_options():
    dict = {
        "s_for_python_version": "3",
        "s_folder_path_template": "C:/temp/test/MP3 Disk {count:03}", 
        "i_from_count": 3,
        "i_to_count": 7,
        }
    return dict
###############################################################################

def get_exact_python_version():
    s_version = ".".join(map(str, sys.version_info[:3]))
    s_version = s_version.strip()
    return s_version

def get_general_python_version():
    s_version = get_exact_python_version()
    return s_version[0]

def exit_if_wrong_python_version(s_right_version):
    s_current_version = get_general_python_version()
    if (s_current_version != s_right_version):
        print(
            "Wrong Python version ({}), "
            "this script should be run using " 
            "Python {}.x,  Exiting..."
            "".format(s_current_version, s_right_version))
        sys.exit()

def get_script_filename():
    return sys.argv[0]

def get_timestamp():
    return datetime.datetime.strftime(datetime.datetime.now(), '%Y-%m-%d %H:%M:%S')

def create_folder(s_path):
    try:
        os.makedirs(s_path, exist_ok=True)
    except (FileExistsError, IsADirectoryError) as e:
        print("FileExistsError IN makedirs")
        raise
        return False
    except OSError as exception:
        print("ERROR #" + str(exception.errno) + "IN makedirs")
        raise
        return False
    print("" + get_timestamp() + " " + "Created folder: " + s_path + "")
    
def create_folders(
        s_folder_path_template:str="",
        i_from_count:int=1,
        i_to_count:int=0
        ):
    i_count=0
    for i_loop in range(i_from_count, i_to_count + 1): 
        create_folder(s_folder_path_template.format(count=i_loop))
        i_count += 1
    
    return i_count
    
def main():
    options_dict = get_default_options()
    exit_if_wrong_python_version(options_dict["s_for_python_version"])
    
    print("+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++")
    print("" + get_timestamp() + " " + get_script_filename() + " started.")
    
    i_total_created = create_folders(
        options_dict["s_folder_path_template"],
        options_dict["i_from_count"],
        options_dict["i_to_count"])

    print("" + get_timestamp() + " " + str(i_total_created) + " folders created.")
    print("" + get_timestamp() + " " + get_script_filename() + " finished.")

if __name__ == '__main__': 
    main()


More information about the Python-list mailing list