Create Folder Structure with a Batch Script

Generate uniform folder hierarchies using a simple batch file.

Take for example, the folder hierarchy shown below. This is our default starting point for any new project.
Using a batch file to create directories for a new project is an easy way of making sure that we’re maintaining consistent structure.

Save the following text as a .BAT file and run it anytime a new project needs to be created. The script prompts the user for a project name and will create all directories as shown above.

@echo off
set /p project="Enter Project Name: "

MkDir "C:\Engineering\%project%\Documents\"
MkDir "C:\Engineering\%project%\Documents\Assembly Procedures\"
MkDir "C:\Engineering\%project%\Documents\Design Requirements\"
MkDir "C:\Engineering\%project%\Documents\Test Procedures\"

MkDir "C:\Engineering\%project%\Drawings\"
MkDir "C:\Engineering\%project%\Drawings\Assembly Drawings\"
MkDir "C:\Engineering\%project%\Drawings\Part Drawings\"

MkDir "C:\Engineering\%project%\3D Models\"
MkDir "C:\Engineering\%project%\3D Models\3D Printer\"

Find and Zip All .py Files

Create a Zip folder including all .py files on your computer.

This is a program for finding all .py files in a directory and zipping them into a single folder.  We can substitute any file extension (.doc, .xlsx, .dxf, etc.) that we’d like to search for, but in our example we’ll use .py

To find all of the files in a given directory, we’ll import and use functionality from the FolderHierarchy script.  Be sure to save this file in the same directory as the script below.

Next, we’ll filter our FolderHierarchy results to include just the .py files.  Then we simply loop through the filtered DataFrame and add each file to a zip folder using the zipfile module.

# -*- coding: utf-8 -*-
Purpose: Copy all files of a given filetype within a folder, zip them,
         and save.

Input: 1. A folderpath to search in.
       2. File type/File Extension to search for.
Output: A zip file containing all of the files with the specified file extension
        that were folder in the specified input folder.
import pandas as pd
import zipfile
import FolderHierarchy

#Define what filetype to search for

#Execute 'FolderHierarchy' program (in same directory)

#Filtering for just files with the defined file extension
                                  regex=False)] for level in results])

#Copy and zip all of the files found.
new_zip=zipfile.ZipFile('all_'+extension+ '_files'+'.zip',mode='w')

#Writing to zip (
for file in found_files['Path']:

print('Found '+str(len(found_files))+' '+extension+' files.')

Data Tools Overview

Data Visualization, Business Intelligence, and Data Science Tools

All descriptions and information shown below were harvested from official software websites, GitHub, Wikipedia, DataCamp, and other websites as listed.

  1. Tableau
    • Data Visualization/Dashboarding Tool
    • Very easy to quickly create graphs, filters, add trendlines, slicers/filters.
    • “Business Intelligence and Analytics”
    • Tableau Public (Free) for Open Community/Non-Commercial use.
      • Connect to a Server
        • OData
        • Web Data Connector
          • Collect data from “virtually any site that publishes data in JSON, XML, or HTML”
          • Use Tableau Web Data Connector Software Development Kit (SDK) to build connectors using Javascript and HTML.
            • SDK includes templates, docs, examples
      • Connect to a File
        • Excel
        • Text
        • Access
        • Statistical Files
          • SAS, SPSS, R
    • Tableau Desktop ($) Professional
    • Connects to pretty much any data source.
  2. (Apache) Hadoop (Free)
    • Open-source software framework written in Java for distributed storage and distributed processing of very large data sets on computer clusters built from commodity hardware (wikipedia)
    • “High Volume Data Flows > MapReduce Process > Consume Results”
    • Can scale very well from a single server to a thousands of machines “each offering local computation and storage” (e-commerce, mobile data type scale)
    • Examples of Use (Gigaom)
      • Satellite Image Processing
      • Fraud Detection
      • IT Security – “Identify malware and cyber-attack patterns”
    • Several Hadoop-related projects listed on
      • MapReduce
        • “programming model and an associated implementation for processing and generating large data sets with a parallel, distributed algorithm on a cluster.” (wikipedia)
        • “Distributed Processing Framework”
      • Pig
        • “A high-level data-flow language and execution framework for parallel computation” (From Hadoop site)
        • “high-level platform for creating MapReduce programs with Hadoop” (Wikipedia)
        • Easily program parallel analysis and more complex data flow sequences (Paraphrased from Hadoop site)
        • “Scripting”
  3. Python (Free) (library selection from DataCamp)
    • Sci-kit learn
      • “Machine Learning in Python” (
      • “Simple and efficient tools for data mining and data analysis”
      • Performs:
        • Classification
        • Regression
        • Clustering
        • Dimensionality reduction
        • Model Selection
        • Preprocessing
    • NumPy
      • Fundamental package for scientific computing with Python. It contains among other things: (
      • a powerful N-dimensional array object
      • sophisticated (broadcasting) functions
      • tools for integrating C/C++ and Fortran code
      • useful linear algebra, Fourier transform, and random number capabilities
    • Pandas
      • High-performance, easy-to-use data structures and data analysis tools for the Python programming language. (
    • SciPy
      • Collection of numerical algorithms and domain-specific toolboxes, including signal processing, optimization, statistics and much more. (
    • Matplotlib
    • Statsmodels
      • Explore data, estimate statistical models, and perform statistical tests. An extensive list of descriptive statistics, statistical tests, plotting functions, and result statistics are available for different types of data and each estimator. (
        • Linear regression models
        • Generalized linear models
        • Discrete choice models
        • Robust linear models
        • Many models and functions for time series analysis
        • Nonparametric estimators
        • A collection of datasets for examples
        • A wide range of statistical tests
        • Input-output tools for producing tables in a number of formats (Text, LaTex, HTML) and for reading Stata files into NumPy and Pandas.
        • Plotting functions
        • Extensive unit tests to ensure correctness of results
    • Seaborn
      • Library for making attractive and informative statistical graphics in Python. It is built on top of matplotlib and tightly integrated with the PyData stack, including support for numpy and pandas data structures and statistical routines from scipy and statsmodels. (
      • Several built-in themes that improve on the default matplotlib aesthetics
      • Tools for choosing color palettes to make beautiful plots that reveal patterns in your data
      • Functions for visualizing univariate and bivariate distributions or for comparing them between subsets of data
      • Tools that fit and visualize linear regression models for different kinds of independent and dependent variables
      • Functions that visualize matrices of data and use clustering algorithms to discover structure in those matrices
      • A function to plot statistical timeseries data with flexible estimation and representation of uncertainty around the estimate
      • High-level abstractions for structuring grids of plots that let you easily build complex visualizations
    • Bokeh
      • Bokeh is a Python interactive visualization library that targets modern web browsers for presentation. Its goal is to provide elegant, concise construction of novel graphics in the style of D3.js, and to extend this capability with high-performance interactivity over very large or streaming datasets. Bokeh can help anyone who would like to quickly and easily create interactive plots, dashboards, and data applications. (
    • Pygal
    • SciPy Stack (
      • Python (2.x >= 2.6 or 3.x >= 3.2)
      • NumPy (>= 1.6)
      • SciPy library (>= 0.10)
      • Matplotlib (>= 1.1)
        • dateutil
        • pytz
        • Support for at least one backend
      • IPython (>= 0.13)
        • pyzmq
        • tornado
      • pandas (>= 0.8)
      • Sympy (>= 0.7)
      • nose (>= 1.1)
  4. R (Free) (library selection from (DataCamp))
    • Data.table
      • Extension of Data.frame
      • Fast aggregation of large data (e.g. 100GB in RAM), fast ordered joins, fast add/modify/delete of columns by group using no copies at all, list columns and a fast file reader (fread). Offers a natural and flexible syntax, for faster development. (
    • Dplyr
      • A Grammar of Data Manipulation
      • A fast, consistent tool for working with data frame like objects, both in memory and out of memory. (
    • Plyr
      • Tools for Splitting, Applying and Combining Data
      • A set of tools that solves a common set of problems: you need to break a big problem down into manageable pieces, operate on each piece and then put all the pieces back together. For example, you might want to fit a model to each spatial location or time point in your study, summarize data by panels or collapse high-dimensional arrays to simpler summary statistics. (
    • Stringr
      • Simple, Consistent Wrappers for Common String Operations
      • A consistent, simple and easy to use set of wrappers around the fantastic ‘stringi’ package. All function and argument names (and positions) are consistent, all functions deal with “NA”‘s and zero length vectors in the same way, and the output from one function is easy to feed into the input of another. (
    • Zoo
      • S3 Infrastructure for Regular and Irregular Time Series (Z’s Ordered Observations)
      • An S3 class with methods for totally ordered indexed observations. It is particularly aimed at irregular time series of numeric vectors/matrices and factors. zoo’s key design goals are independence of a particular index/date/time class and consistency with ts and base R by providing methods to extend standard generics. (
    • Ggvis
      • Interactive Grammar of Graphics
      • An implementation of an interactive grammar of graphics, taking the best parts of ‘ggplot2’, combining them with the reactive framework from ‘shiny’ and web graphics from ‘vega’. (
    • Lattice
      • Trellis Graphics for R
      • A powerful and elegant high-level data visualization system inspired by Trellis graphics, with an emphasis on multivariate data. Lattice is sufficient for typical graphics needs, and is also flexible enough to handle most nonstandard requirements. (
    • Ggplot2
      • An Implementation of the Grammar of Graphics
      • It combines the advantages of both base and lattice graphics: conditioning and shared axes are handled automatically, and you can still build up a plot step by step from multiple data sources. It also implements a sophisticated multidimensional conditioning system and a consistent interface to map data to aesthetic attributes. (
    • Caret
      • Classification and Regression Testing
      • Misc functions for training and plotting classification and regression models. (
    • RevoScaleR
      • Proprietary R package from Revolution Analytics.
      • Revolution Analytics is a commercial distribution of R.
  5. Power BI (Free, $)
    • “suite of business analytics tools to analyze data and share insights.”
    • Looks like mostly data visualization
    • Extremely interactive/dynamic dashboards.
    • Connects to pretty much everything
    • Cross Platform
  6. SAS ($)
    • “Statistical Analysis Software is a software suite developed by SAS Institute for advanced analytics, multivariate analyses, business intelligence, data management, and predictive analytics” (Wikipedia)
    • SAS University Edition (Free)
    • Local
    • AWS
  7. Google Analytics
    • For Enterprise ($)
    • For Small Businesses
    • Google Analytics (Free)
      • “Google Analytics helps you analyze visitor traffic and paint a complete picture of your audience and their needs. Track the routes people take to reach you and the devices they use to get there with reporting tools like Traffic Sources. Learn what people are looking for and what they like with In-Page Analytics. Then tailor your marketing and site content for maximum impact.” (
    • Data Collection & Management
      • Data collection and management with Google Analytics provides a single, accurate view of the customer that can be customized to your needs and shared across the organization.
    • Data Consolidation
      • Google delivers integrated solutions that preserve data integrity, reduce friction, and seamlessly connect disparate data sources.
    • Data Analytics & Reporting
      • Reports can be segmented and filtered to reflect the needs of your business. Real-time views let you know which new content is popular, how much traffic today’s new promotion is driving to your site, and which tweets and blog posts draw the best results.
    • Data Activation
      • Make smarter marketing decisions. Google Analytics allows you to seamlessly activate your data to improve marketing campaigns and experiment with new channels and content.
    • Tag Manager (Free)
      • Google Tag Manager lets you launch new tags any time with a few clicks, so you never miss a measurement or marketing opportunity.
    • Analytics Academy
      • Learn analytics with free online courses
      • Take lessons from Google measurement experts
      • Join the Google Analytics learning community
      • Test your knowledge
      • For Mobile Apps
    • Google Analytics API

General Notes

  1. “Data scientists that use primarily opensource tools earned a higher median salary (130K) than those using proprietary tools (90K).” – Datacamp
  2. Big Data Landscape 2016
  3. For further Data Science reading, I highly recommend Joel Grus’ Data Science from Scratch.