Background of our environment:

Data Warehouse system is running with SQL Server 2012. 
Data Sources are Excel files and other APIs

Issue:
The business metrics are changing frequently and source file is changing frequently and data load failing for multiple reasons.

Column mismatch
Data type mismatch
Wrong files
Old or same file, updated twice

Some of the above issues are managed via process guidelines and others at SQL level.
But, whenever, there is a new file / column added, developer has to manually add the Column / table for that change to be impacted.
Most of the times, the changes came to light only after the job failed or huge data quality / mismatch issue identified.
Question:
Is there any way, this can automated using Python / Powershell / Any Other scripting languages? In a way, whenever source files are ready, it can read and do the below steps:

Read the column headers.
Generate SQL for table structure with identified column headers and create temporary (Staging) table.
Load the data into the newly created temporary table.
After some basic data processing, load data into main table (presentation area) mostly through SQL.

Challenges:

There are 18 unique files, and each file columns are different and it may modified or added anytime according to the business requirement.
When there is an addition of column, how do add that column on main table - altering a table is a good idea here? is it okay to done via script?

Note:

We have control only from source data file, we cannot do anything with how source file is generated or when can be new column added to source file.
I am not sure, whether to ask this question on SO OR DBA SE, so if it is not fit here, please move it appropriate forum.
1.I'm guessing you can identify the file types based on file_names or header.You could create a SSIS package with a Source Script within a foreach loop , for the script define input  and output columns manually and give Generic Names and fixed string length , ColumnNr1,ColumnNr2,ColumnNrN (Where N is max number of Columns from your files +10 for safety) .Create a staging table using the same logic as above,ColumnNr1,2... this will be used for all the files, if the file load is sequencial(As i have assumed), in your script you will  read the header and insert it into a data table or list , compare the numbers of columns between file header and Final Table, create Alter Table statements for new columns based on differences and execute it , send column data from file to OutputBuffer columns  .
2. Create dynamic SQL procedure based on data processing needs .
Create tables from Excel column headers using Python and load data?