Create an account


Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[Tut] How to Create and Run a Batch File That Runs a Python Script?

#1
How to Create and Run a Batch File That Runs a Python Script?

5/5 – (1 vote)

Problem Formulation and Solution Overview


This article will show you how to create and execute a batch file in Python.

ℹ Info: A batch or .bat file is a file that contains commands to be executed in the order specified. This file type can organize and automate tasks that need to be run regularly without requiring user input. These files can be created using a text editor, such as Notepad.

To make it more interesting, we have the following running scenario:

The Sales Manager of Suppliworks has asked you to create and send him a Monthly Sales Report. This file will arrive as an unsorted, unfiltered CSV. You will need to filter this criterion based on the current month and save it as an Excel file to the current working directory.

Download the sales.csv file to follow along with our article.


? Question: How would we write code to create and execute a batch file in Python?

We can accomplish this task by completing the following steps:

  1. Install the Batch Runner Extension
  2. Create the Python Script
  3. Create the .bat file
  4. Execute

Install Batch Runner Extension


To run/execute a bat file, an extension will need to be installed in the IDE.

To install this extension, navigate to the IDE, Extensions area. In the VSC IDE, this can be found on the far left panel bar shown below.

In the Search textbox, enter Batch Runner. While entering this text, the IDE automatically searches for extensions that match the criteria entered.

Once the desired extension is found, click the Install button to the left of the Batch Runner extension to start the installation process.


Once the installation has been completed, the Install button converts to a Settings icon. The extension is now ready to use!


? Note: Feel free to install the Batch Extension of your choosing.



Create Python Script


This section creates a Python file that reads in a CSV, sorts, filters and saves the output to an Excel file.

You can replace this with any Python file you want to run. For this example, we’ll need two libraries:

  • The pandas library will need to be installed for this example, as the code reads in and filters a CSV file.
  • The openpyxl library will need to be installed for this example, as the code exports the filtered DataFrame to an Excel file. To install this library, navigate to the IDE terminal command prompt. Enter and run the code snippet shown below.

To install those libraries, navigate to the IDE terminal command prompt. Enter and run the two commands to install both libraries:

pip install pandas
pip install openpyxl

In the current working directory, create a Python file called sales.py.

Copy and paste the code snippet below into this file and save it.

import pandas as pd from datetime import datetime
import openpyxl today = datetime.now()
cols = ['OrderDate', 'Region', 'Item', 'Units'] df = pd.read_csv('sales.csv', usecols=cols)
df["OrderDate"] = pd.to_datetime(df["OrderDate"])
df = df.sort_values(by=['OrderDate']) df_monthly = df[df['OrderDate'].dt.month == today.month]
df_monthly.to_excel('monthly_rpt.xlsx', columns=cols, index=False, header=True)

The first three (3) lines in the above code snippet import references to the libraries necessary to run this code error-free.

The following line retrieves the current date using datetime.now() from the datetime library. The results save to the variable today. If the contents were output to the terminal, the following displays:

2022-11-08 07:59:00.875656

The next line declares a List containing the DataFrame Columns to retrieve from the CSV file and export to the Excel file. The results save to cols.

Then, the sales.csv file is opened, and columns specified in cols are retrieved. The results save to the DataFrame df. If df was output to the terminal, the following snippet displays:

Top Five (5) Records of sales.csv


OrderDate Region Item Units
0 11/6/2022 East Pencil 95
1 11/23/2022 Central Binder 50
2 11/9/2022 Central Pencil 36
3 11/26/2022 Central Pen 27
4 11/15/2022 West Pencil 56

The next line converts the OrderDate into a proper Date format.


OrderDate Region Item Units
0 2022-11-06 East Pencil 95
1 2022-11-23 Central Binder 50
2 2022-11-09 Central Pencil 36
3 2022-11-26 Central Pen 27
4 2022-11-15 West Pencil 56

As you can see, the DataFrame, df, is not in any kind of sort order. The next line takes care of this by sorting on the OrderDate field in ascending order. The results save back to the DataFrame df.


OrderDate Region Item Units
22 2022-01-15 Central Binder 46
23 2022-02-01 Central Binder 87
24 2022-02-18 East Binder 4
25 2022-03-07 West Binder 7
26 2022-03-24 Central Pen Set 50

This script’s final two (2) lines filter the DataFrame, df, based on the current month. The results save to df_monthly. These results are then exported to Excel and placed into the current working directory.

If you run this code, you will see that the Excel file saved the appropriate filtered results into the monthly_rpt.xlsx file.


Great! Now let’s create a Batch file to run this script!


Create Batch File


In this section, a bat file is created to run the Python file sales.py.

In the current working directory, create a bat file called sales.bat.

Copy and paste the code snippet below into this file and save it.

@echo off "C:\Python\python.exe" "sales.py"

The first line of the code snippet turns off any output to the terminal.

The following line specifies the following:

  • The location of the python.exe file on your computer.
  • The Python script to execute.

Let’s see if this works!


Execute


This section executes the bat file, which calls and runs the code inside the sales.py file.

To run the bat file, navigate to the IDE, and click to select the sales.bat file.

Press the F5 key on the keyboard to execute.

If successful, the monthly_rpt.xlsx file will appear in the current working directory!


Summary


This article has shown you have to create and run a .bat file that executes a Python script. This file can execute a simple Python script as well as an intricate one.

Good Luck & Happy Coding!




https://www.sickgaming.net/blog/2022/11/...on-script/
Reply



Possibly Related Threads…
Thread Author Replies Views Last Post
  [Tut] Check Python Version from Command Line and in Script xSicKxBot 0 1,909 08-24-2023, 01:34 PM
Last Post: xSicKxBot
  [Tut] Python to .exe – How to Make a Python Script Executable? xSicKxBot 0 1,260 03-13-2023, 01:31 AM
Last Post: xSicKxBot
  [Tut] EzpzShell: An Easy-Peasy Python Script That Simplifies Revshell Creation xSicKxBot 0 1,340 02-11-2023, 10:30 AM
Last Post: xSicKxBot
  [Tut] I Used These 3 Easy Steps to Create a Bitcoin Wallet in Python (Public/Private) xSicKxBot 0 1,220 01-29-2023, 02:51 AM
Last Post: xSicKxBot
  [Tut] Bitcoin – Trading Moving Averages or HODL? A Python Script Uncovers the Answer! xSicKxBot 0 1,350 01-18-2023, 03:08 AM
Last Post: xSicKxBot
  [Tut] I Used This Python Script to Check a Website Every X Seconds for a Given Word xSicKxBot 0 1,234 01-11-2023, 11:00 PM
Last Post: xSicKxBot
  [Tut] A Python Script to Uncover Creative Research Gaps Through Recombination xSicKxBot 0 1,218 01-04-2023, 07:58 AM
Last Post: xSicKxBot
  [Tut] I Made a Python Script That Beeps When BTC or ETH Prices Drop xSicKxBot 0 1,106 12-18-2022, 11:52 AM
Last Post: xSicKxBot
  [Tut] Bash Port Scanning (SSH) as a Python Script [TryHackMe] xSicKxBot 0 1,285 11-24-2022, 10:10 AM
Last Post: xSicKxBot
  [Tut] How to Schedule a Batch Python Script xSicKxBot 0 1,192 11-12-2022, 02:23 PM
Last Post: xSicKxBot

Forum Jump:


Users browsing this thread:

Forum software by © MyBB Theme © iAndrew 2016