Python Command-Line Arguments

Python Command-Line Arguments

Python is a versatile programming language that allows developers to create powerful applications and scripts. One of the features that make Python so flexible is its ability to accept command-line arguments. Command-line arguments are values or options that are passed to a program when it is executed from the command line. These arguments can be used to modify the behavior of the program or provide input data.

How to Use Command-Line Arguments in Python

In Python, command-line arguments are accessed through the sys.argv list. This list contains the command-line arguments passed to the script. The first element of the list, sys.argv[0], is always the name of the script itself.

Let’s take a look at an example to understand how command-line arguments work in Python:

import sys

# Print the number of command-line arguments
print("Number of arguments:", len(sys.argv))

# Print the command-line arguments
for arg in sys.argv:
    print(arg)

When you run this script from the command line with some arguments, it will display the number of arguments and then print each argument on a new line. For example, if you run the script with the command python script.py arg1 arg2 arg3, the output will be:

Number of arguments: 4
script.py
arg1
arg2
arg3

Using Command-Line Arguments in Your Python Scripts

Command-line arguments can be used in various ways to enhance the functionality and flexibility of your Python scripts. Here are a few examples:

1. Providing Input Data

You can use command-line arguments to provide input data to your script. For example, if you have a script that performs some calculations on a given number, you can pass that number as a command-line argument. Here’s an example:

import sys

# Get the number from the command-line argument
number = int(sys.argv[1])

# Perform some calculations
result = number * 2

# Print the result
print("Result:", result)

If you run this script with the command python script.py 5, it will multiply the number 5 by 2 and print the result:

Result: 10

2. Modifying Script Behavior

Command-line arguments can also be used to modify the behavior of your script. For example, you can use a command-line argument to enable or disable certain features or set specific options. Here’s an example:

import sys

# Check if the debug flag is provided
if "--debug" in sys.argv:
    # Enable debug mode
    debug = True
else:
    # Disable debug mode
    debug = False

# Print debug information if debug mode is enabled
if debug:
    print("Debug mode enabled")
else:
    print("Debug mode disabled")

If you run this script with the command python script.py --debug, it will enable the debug mode and print “Debug mode enabled”. If you run it without the --debug flag, it will disable the debug mode and print “Debug mode disabled”.

3. Processing Multiple Files

Command-line arguments can also be used to process multiple files or perform batch operations. For example, you can write a script that takes a list of file names as command-line arguments and performs the same operation on each file. Here’s an example:

import sys

# Process each file
for filename in sys.argv[1:]:
    # Open the file and perform some operation
    with open(filename, "r") as file:
        # Do something with the file
        print("Processing:", filename)

If you run this script with the command python script.py file1.txt file2.txt file3.txt, it will process each file and print “Processing: file1.txt”, “Processing: file2.txt”, and “Processing: file3.txt”.

Conclusion

Python command-line arguments provide a convenient way to modify the behavior of your scripts and provide input data. By using the sys.argv list, you can access the command-line arguments passed to your script and use them to enhance its functionality. Whether you need to provide input data, modify script behavior, or process multiple files, command-line arguments can help you achieve your goals.

Scroll to Top