The newer subprocess.check_output
and similar commands are supposed to replace os.system
. See this page for details. While I can’t test this on Windows (because I don’t have access to any Windows machines), the following should work:
from subprocess import check_output
check_output("dir C:", shell=True)
check_output
returns a string of the output from your command. Alternatively, subprocess.call
just runs the command and returns the status of the command (usually 0 if everything is okay).
Also note that, in python 3, that string output is now bytes
output. If you want to change this into a string, you need something like
from subprocess import check_output
check_output("dir C:", shell=True).decode()
If necessary, you can tell it the kind of encoding your program outputs. The default is utf-8
, which typically works fine, but other standard options are here.
Also note that @bluescorpion says in the comments that Windows 10 needs a trailing backslash, as in check_output("dir C:\\", shell=True)
. The double backslash is needed because \
is a special character in python, so it has to be escaped. (Also note that even prefixing the string with r
doesn’t help if \
is the very last character of the string — r"dir C:\"
is a syntax error, though r"dir C:\ "
is not.)
Welcome to Python Run Shell Command On Windows tutorial. In this tutorial, you will learn, how to run shell command in python. So let’s move forward.
What is Shell ?
- In computer science shell is generally seen as a piece of software that provides an interface for a user to some other software or the operating system.
- So the shell can be an interface between the operating system and the services of the kernel of this operating system
Python Modules For Running Shell command
Python provides lots of modules for executing different operations related to operating system.
Generally there are two important modules which are used to run shell command in python.
- Subprocess module
- OS module
Python Run Shell Command Using Subprocess module
The subprocess module allows you to spawn new processes, connect to their input/output/error pipes, and obtain their return codes. This module intends to replace several older modules and functions:
- os.system
- os.spawn*
- os.popen*
- popen2.*
- commands.*
The subprocess module allows users to communicate from their Python script to a terminal like bash or cmd.exe.
Now we will see different functions of subprocess module.
subprocess.call()
call() method create a separate process and run provided command in this process.
Write the following code to implement call() method of subprocess module.
import subprocess subprocess.call(‘dir’, shell=True) |
In this example, we will create a process for dir command
It’s output will be as follows.
subprocess.check_output()
check_output()is used to capture the output for later processing. So let’s see how it works.
import subprocess output = subprocess.check_output(‘dir’, shell=True) print(output) |
Output
Python Run Shell Command Using OS module
The OS module is used to interact with underlying operating system in several different ways.
OS is an python built-in module so we don’t need to install any third party module. The os module allows platform independent programming by providing abstract methods.
Executing Shell scripts with os.system()
The most straight forward approach to run a shell command is by using os.system().
import os os.system(‘dir’) |
Capturing Output
The problem with this approach is in its inflexibility since you can’t even get the resulting output as a variable. os.system() doesn’t return the result of the called shell commands. So if you want to capture output then you have to use os.popen() method.
The os.popen() command opens a pipe from or to the command line. This means that we can access the stream within Python. This is useful since you can now get the output as a variable. Now let’s see it practically, so write the following code.
import os output = os.popen(‘dir’).readlines() print(output) |
- Here i used readlines() function, which splits each line (including a trailing \n).
- You can also use read() method which will get the whole output as one string.
Now it’s output will be as follows.
So guys, that’s it for Python Run Shell Command On Windows tutorial. I hope it is helpful for you and if you have any query regarding this post then ask your questions in comment section. Thanks Everyone.
Related Articles :
- How To Add Code To GitHub Using PyCharm
- Sets In Python Tutorial For Beginners
- Join Two Lists Python – Learn Joining Two Lists With Examples
Watch Now This tutorial has a related video course created by the Real Python team. Watch it together with the written tutorial to deepen your understanding: Running Python Scripts
One of the most important skills you need to build as a Python developer is to be able to run Python scripts and code. This is going to be the only way for you to know if your code works as you planned. It’s even the only way of knowing if your code works at all!
This step-by-step tutorial will guide you through a series of ways to run Python scripts, depending on your environment, platform, needs, and skills as a programmer.
You’ll have the opportunity to learn how to run Python scripts by using:
- The operating system command-line or terminal
- The Python interactive mode
- The IDE or text editor you like best
- The file manager of your system, by double-clicking on the icon of your script
This way, you’ll get the knowledge and skills you’ll need to make your development cycle more productive and flexible.
Scripts vs Modules
In computing, the word script is used to refer to a file containing a logical sequence of orders or a batch processing file. This is usually a simple program, stored in a plain text file.
Scripts are always processed by some kind of interpreter, which is responsible for executing each command sequentially.
A plain text file containing Python code that is intended to be directly executed by the user is usually called script, which is an informal term that means top-level program file.
On the other hand, a plain text file, which contains Python code that is designed to be imported and used from another Python file, is called module.
So, the main difference between a module and a script is that modules are meant to be imported, while scripts are made to be directly executed.
In either case, the important thing is to know how to run the Python code you write into your modules and scripts.
What’s the Python Interpreter?
Python is an excellent programming language that allows you to be productive in a wide variety of fields.
Python is also a piece of software called an interpreter. The interpreter is the program you’ll need to run Python code and scripts. Technically, the interpreter is a layer of software that works between your program and your computer hardware to get your code running.
Depending on the Python implementation you use, the interpreter can be:
- A program written in C, like CPython, which is the core implementation of the language
- A program written in Java, like Jython
- A program written in Python itself, like PyPy
- A program implemented in .NET, like IronPython
Whatever form the interpreter takes, the code you write will always be run by this program. Therefore, the first condition to be able to run Python scripts is to have the interpreter correctly installed on your system.
The interpreter is able to run Python code in two different ways:
- As a script or module
- As a piece of code typed into an interactive session
How to Run Python Code Interactively
A widely used way to run Python code is through an interactive session. To start a Python interactive session, just open a command-line or terminal and then type in python
, or python3
depending on your Python installation, and then hit Enter.
Here’s an example of how to do this on Linux:
$ python3
Python 3.6.7 (default, Oct 22 2018, 11:32:17)
[GCC 8.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
The standard prompt for the interactive mode is >>>
, so as soon as you see these characters, you’ll know you are in.
Now, you can write and run Python code as you wish, with the only drawback being that when you close the session, your code will be gone.
When you work interactively, every expression and statement you type in is evaluated and executed immediately:
>>>
>>> print('Hello World!')
Hello World!
>>> 2 + 5
7
>>> print('Welcome to Real Python!')
Welcome to Real Python!
An interactive session will allow you to test every piece of code you write, which makes it an awesome development tool and an excellent place to experiment with the language and test Python code on the fly.
To exit interactive mode, you can use one of the following options:
quit()
orexit()
, which are built-in functions- The Ctrl+Z and Enter key combination on Windows, or just Ctrl+D on Unix-like systems
If you’ve never worked with the command-line or terminal, then you can try this:
-
On Windows, the command-line is usually known as command prompt or MS-DOS console, and it is a program called
cmd.exe
. The path to this program can vary significantly from one system version to another.A quick way to get access to it is by pressing the Win+R key combination, which will take you to the Run dialog. Once you’re there, type in
cmd
and press Enter. -
On GNU/Linux (and other Unixes), there are several applications that give you access to the system command-line. Some of the most popular are xterm, Gnome Terminal, and Konsole. These are tools that run a shell or terminal like Bash, ksh, csh, and so on.
In this case, the path to these applications is much more varied and depends on the distribution and even on the desktop environment you use. So, you’ll need to read your system documentation.
-
On Mac OS X, you can access the system terminal from Applications → Utilities → Terminal.
How Does the Interpreter Run Python Scripts?
When you try to run Python scripts, a multi-step process begins. In this process the interpreter will:
-
Process the statements of your script in a sequential fashion
-
Compile the source code to an intermediate format known as bytecode
This bytecode is a translation of the code into a lower-level language that’s platform-independent. Its purpose is to optimize code execution. So, the next time the interpreter runs your code, it’ll bypass this compilation step.
Strictly speaking, this code optimization is only for modules (imported files), not for executable scripts.
-
Ship off the code for execution
At this point, something known as a Python Virtual Machine (PVM) comes into action. The PVM is the runtime engine of Python. It is a cycle that iterates over the instructions of your bytecode to run them one by one.
The PVM is not an isolated component of Python. It’s just part of the Python system you’ve installed on your machine. Technically, the PVM is the last step of what is called the Python interpreter.
The whole process to run Python scripts is known as the Python Execution Model.
How to Run Python Scripts Using the Command-Line
A Python interactive session will allow you to write a lot of lines of code, but once you close the session, you lose everything you’ve written. That’s why the usual way of writing Python programs is by using plain text files. By convention, those files will use the .py
extension. (On Windows systems the extension can also be .pyw
.)
Python code files can be created with any plain text editor. If you are new to Python programming, you can try Sublime Text, which is a powerful and easy-to-use editor, but you can use any editor you like.
To keep moving forward in this tutorial, you’ll need to create a test script. Open your favorite text editor and write the following code:
1#!/usr/bin/env python3
2
3print('Hello World!')
Save the file in your working directory with the name hello.py
. With the test script ready, you can continue reading.
Using the python
Command
To run Python scripts with the python
command, you need to open a command-line and type in the word python
, or python3
if you have both versions, followed by the path to your script, just like this:
$ python3 hello.py
Hello World!
If everything works okay, after you press Enter, you’ll see the phrase Hello World!
on your screen. That’s it! You’ve just run your first Python script!
If this doesn’t work right, maybe you’ll need to check your system PATH
, your Python installation, the way you created the hello.py
script, the place where you saved it, and so on.
This is the most basic and practical way to run Python scripts.
Redirecting the Output
Sometimes it’s useful to save the output of a script for later analysis. Here’s how you can do that:
$ python3 hello.py > output.txt
This operation redirects the output of your script to output.txt
, rather than to the standard system output (stdout
). The process is commonly known as stream redirection and is available on both Windows and Unix-like systems.
If output.txt
doesn’t exist, then it’s automatically created. On the other hand, if the file already exists, then its contents will be replaced with the new output.
Finally, if you want to add the output of consecutive executions to the end of output.txt
, then you must use two angle brackets (>>
) instead of one, just like this:
$ python3 hello.py >> output.txt
Now, the output will be appended to the end of output.txt
.
Running Modules With the -m
Option
Python offers a series of command-line options that you can use according to your needs. For example, if you want to run a Python module, you can use the command python -m <module-name>
.
The -m
option searches sys.path
for the module name and runs its content as __main__
:
$ python3 -m hello
Hello World!
Using the Script Filename
On recent versions of Windows, it is possible to run Python scripts by simply entering the name of the file containing the code at the command prompt:
C:\devspace> hello.py
Hello World!
This is possible because Windows uses the system registry and the file association to determine which program to use for running a particular file.
On Unix-like systems, such as GNU/Linux, you can achieve something similar. You’ll only have to add a first line with the text #!/usr/bin/env python
, just as you did with hello.py
.
For Python, this is a simple comment, but for the operating system, this line indicates what program must be used to run the file.
This line begins with the #!
character combination, which is commonly called hash bang or shebang, and continues with the path to the interpreter.
There are two ways to specify the path to the interpreter:
#!/usr/bin/python
: writing the absolute path#!/usr/bin/env python
: using the operating systemenv
command, which locates and executes Python by searching thePATH
environment variable
This last option is useful if you bear in mind that not all Unix-like systems locate the interpreter in the same place.
Finally, to execute a script like this one, you need to assign execution permissions to it and then type in the filename at the command-line.
Here’s an example of how to do this:
$ # Assign execution permissions
$ chmod +x hello.py
$ # Run the script by using its filename
$ ./hello.py
Hello World!
With execution permissions and the shebang line properly configured, you can run the script by simply typing its filename at the command-line.
Finally, you need to note that if your script isn’t located at your current working directory, you’ll have to use the file path for this method to work correctly.
How to Run Python Scripts Interactively
It is also possible to run Python scripts and modules from an interactive session. This option offers you a variety of possibilities.
Taking Advantage of import
When you import a module, what really happens is that you load its contents for later access and use. The interesting thing about this process is that import
runs the code as its final step.
When the module contains only classes, functions, variables, and constants definitions, you probably won’t be aware that the code was actually run, but when the module includes calls to functions, methods, or other statements that generate visible results, then you’ll witness its execution.
This provides you with another option to run Python scripts:
>>>
>>> import hello
Hello World!
You’ll have to note that this option works only once per session. After the first import
, successive import
executions do nothing, even if you modify the content of the module. This is because import
operations are expensive and therefore run only once. Here’s an example:
>>>
>>> import hello # Do nothing
>>> import hello # Do nothing again
These two import
operations do nothing, because Python knows that hello
has already been imported.
There are some requirements for this method to work:
- The file with the Python code must be located in your current working directory.
- The file must be in the Python Module Search Path (PMSP), where Python looks for the modules and packages you import.
To know what’s in your current PMSP, you can run the following code:
>>>
>>> import sys
>>> for path in sys.path:
... print(path)
...
/usr/lib/python36.zip
/usr/lib/python3.6
/usr/lib/python3.6/lib-dynload
/usr/local/lib/python3.6/dist-packages
/usr/lib/python3/dist-packages
Running this code, you’ll get the list of directories and .zip
files where Python searches the modules you import.
Using importlib
and imp
In the Python Standard Library, you can find importlib
, which is a module that provides import_module()
.
With import_module()
, you can emulate an import
operation and, therefore, execute any module or script. Take a look at this example:
>>>
>>> import importlib
>>> importlib.import_module('hello')
Hello World!
<module 'hello' from '/home/username/hello.py'>
Once you’ve imported a module for the first time, you won’t be able to continue using import
to run it. In this case, you can use importlib.reload()
, which will force the interpreter to re-import the module again, just like in the following code:
>>>
>>> import hello # First import
Hello World!
>>> import hello # Second import, which does nothing
>>> import importlib
>>> importlib.reload(hello)
Hello World!
<module 'hello' from '/home/username/hello.py'>
An important point to note here is that the argument of reload()
has to be the name of a module object, not a string:
>>>
>>> importlib.reload('hello')
Traceback (most recent call last):
...
TypeError: reload() argument must be a module
If you use a string as an argument, then reload()
will raise a TypeError
exception.
importlib.reload()
comes in handy when you are modifying a module and want to test if your changes work, without leaving the current interactive session.
Finally, if you are using Python 2.x, then you’ll have imp
, which is a module that provides a function called reload()
. imp.reload()
works similarly to importlib.reload()
. Here’s an example:
>>>
>>> import hello # First import
Hello World!
>>> import hello # Second import, which does nothing
>>> import imp
>>> imp.reload(hello)
Hello World!
<module 'hello' from '/home/username/hello.py'>
In Python 2.x, reload()
is a built-in function. In versions 2.6 and 2.7, it is also included in imp
, to aid the transition to 3.x.
Using runpy.run_module()
and runpy.run_path()
The Standard Library includes a module called runpy
. In this module, you can find run_module()
, which is a function that allows you to run modules without importing them first. This function returns the globals
dictionary of the executed module.
Here’s an example of how you can use it:
>>>
>>> runpy.run_module(mod_name='hello')
Hello World!
{'__name__': 'hello',
...
'_': None}}
The module is located using a standard import
mechanism and then executed on a fresh module namespace.
The first argument of run_module()
must be a string with the absolute name of the module (without the .py
extension).
On the other hand, runpy
also provides run_path()
, which will allow you to run a module by providing its location in the filesystem:
>>>
>>> import runpy
>>> runpy.run_path(path_name='hello.py')
Hello World!
{'__name__': '<run_path>',
...
'_': None}}
Like run_module()
, run_path()
returns the globals
dictionary of the executed module.
The path_name
parameter must be a string and can refer to the following:
- The location of a Python source file
- The location of a compiled bytecode file
- The value of a valid entry in the
sys.path
, containing a__main__
module (__main__.py
file)
Hacking exec()
So far, you’ve seen the most commonly used ways to run Python scripts. In this section, you’ll see how to do that by using exec()
, which is a built-in function that supports the dynamic execution of Python code.
exec()
provides an alternative way for running your scripts:
>>>
>>> exec(open('hello.py').read())
'Hello World!'
This statement opens hello.py
, reads its content, and sends it to exec()
, which finally runs the code.
The above example is a little bit out there. It’s just a “hack” that shows you how versatile and flexible Python can be.
Using execfile()
(Python 2.x Only)
If you prefer to use Python 2.x, you can use a built-in function called execfile()
, which is able to run Python scripts.
The first argument of execfile()
has to be a string containing the path to the file you want to run. Here’s an example:
>>>
>>> execfile('hello.py')
Hello World!
Here, hello.py
is parsed and evaluated as a sequence of Python statements.
How to Run Python Scripts From an IDE or a Text Editor
When developing larger and more complex applications, it is recommended that you use an integrated development environment (IDE) or an advanced text editor.
Most of these programs offer the possibility of running your scripts from inside the environment itself. It is common for them to include a Run or Build command, which is usually available from the tool bar or from the main menu.
Python’s standard distribution includes IDLE as the default IDE, and you can use it to write, debug, modify, and run your modules and scripts.
Other IDEs such as Eclipse-PyDev, PyCharm, Eric, and NetBeans also allow you to run Python scripts from inside the environment.
Advanced text editors like Sublime Text and Visual Studio Code also allow you to run your scripts.
To grasp the details of how to run Python scripts from your preferred IDE or editor, you can take a look at its documentation.
How to Run Python Scripts From a File Manager
Running a script by double-clicking on its icon in a file manager is another possible way to run your Python scripts. This option may not be widely used in the development stage, but it may be used when you release your code for production.
In order to be able to run your scripts with a double-click, you must satisfy some conditions that will depend on your operating system.
Windows, for example, associates the extensions .py
and .pyw
with the programs python.exe
and pythonw.exe
respectively. This allows you to run your scripts by double-clicking on them.
When you have a script with a command-line interface, it is likely that you only see the flash of a black window on your screen. To avoid this annoying situation, you can add a statement like input('Press Enter to Continue...')
at the end of the script. This way, the program will stop until you press Enter.
This trick has its drawbacks, though. For example, if your script has any error, the execution will be aborted before reaching the input()
statement, and you still won’t be able to see the result.
On Unix-like systems, you’ll probably be able to run your scripts by double-clicking on them in your file manager. To achieve this, your script must have execution permissions, and you’ll need to use the shebang trick you’ve already seen. Likewise, you may not see any results on screen when it comes to command-line interface scripts.
Because the execution of scripts through double-click has several limitations and depends on many factors (such as the operating system, the file manager, execution permissions, file associations), it is recommended that you see it as a viable option for scripts already debugged and ready to go into production.
Conclusion
With the reading of this tutorial, you have acquired the knowledge and skills you need to be able to run Python scripts and code in several ways and in a variety of situations and development environments.
You are now able to run Python scripts from:
- The operating system command-line or terminal
- The Python interactive mode
- The IDE or text editor you like best
- The file manager of your system, by double-clicking on the icon of your script
These skills will make your development process much faster, as well as more productive and flexible.
Watch Now This tutorial has a related video course created by the Real Python team. Watch it together with the written tutorial to deepen your understanding: Running Python Scripts
A crucial operation you need to be aware of when programming is to run a Python script.
Although this seems like a simple operation, most beginners often face difficulty when running scripts.
In this article, we will guide you through the process of running scripts in Python using different methods and environments.
To run a Python script, you must:
- Open a Terminal or Command Prompt Window
- Navigate to the directory where your Python script (.py file) is located using the ‘cd’ command
- Execute your script by typing ‘python’ followed by the name of your script
There are multiple ways to run a script, and by the end of this article, you’ll have a solid understanding of how to run Python scripts in different environments and operating systems.
Understanding each method can improve your programming experience and help you adapt to different scenarios.
Let’s get into it!
6 Methods to Run a Python Script
In this section, we will cover 6 ways of running a Python Script.
Specifically, we will go over the following:
- Running a Python Script From Command Line
- Running a Python Script From Python Interactive Shell
- Running a Python Script in IDE
- Running a Python Script in IDLE
- Running a Python Script Using Import
- Running a Python Script Using runpy.run_module() And runpy.run_path()
1) How to Run a Python Script From Command Line
The process of running a Python script from the command line is quite similar across different operating systems.
In this section, we will look at how you can:
- Run Python scripts from the command line on Windows
- Run Python scripts from the command line on Linux and MacOS
1) How to Run Python Scripts From The Command Line on Windows
You can use the following steps to run a Python program from the command line on Windows:
Step 1: Open the Command Line Interface. You can do this by searching for cmd in the start menu or by pressing Win+R, typing cmd, and then hitting Enter.
Step 2: Navigate to the directory containing your Python script using the cd command.
For example, if your script is in a directory on your local drive E in a folder named “PythonScripts”, you would type cd E\PythonScripts.
Step 3: Run the script by typing python script.py (replace script.py with the name of your script), and press Enter.
2) How to Run Python Scripts From The Command Line on Linux And MacOS
Follow the steps listed below to run Python scripts from the command line on Linux and MacOS:
Step 1: Open the terminal.
Step 2: Navigate to the directory containing your Python script using the cd command.
For example, if your script is in a directory in your home folder named “PythonScripts”, you would type cd ~/PythonScripts.
Step 3: To run your script, type python3 script.py (replace script.py with the name of your script), and press Enter.
2) How to Run Python Script From Python Interactive Shell
The Python Interactive Shell, also known as the Python Interpreter, is an excellent tool for trying out small snippets of Python code and doing simple calculations, but it’s not the best tool for running large, complex scripts.
However, if you want to run a Python script from the Python Interactive Shell, you can do so using Python’s built-in execfile() function in Python 2, or using the exec() function with open() in Python 3.
Running a Python Script in Python 2
Follow the steps below to run a script from the Python interactive shell in Python 2:
Step 1: Open the Python Interactive session by typing python into your terminal or command prompt and hitting Enter.
Step 2: Type execfile(‘script.py’), replacing ‘script.py’ with the path to your script.
For example:
>>> execfile('C:/Users/username/Desktop/script.py')
Running a Python Script in Python 3
In Python 3, the execfile() function has been removed. Instead, you can use exec() with open() to achieve the same effect.
Follow the steps below to run a script in Python 3:
Step 1: Open the Python Interactive Shell by typing python3 (or python if Python 3 is your default Python) into your terminal or command prompt and hitting Enter.
Step 2: Type the following, replacing ‘script.py’ with the path to your script.
>>> exec(open('C:/Users/username/Desktop/script.py').read())
The output for the above execution will be:
3) How to Run a Python Script in IDE
You can run Python scripts in different Integrated development environments, and each has its own way of executing scripts.
For instance, if you’d like to run a Python script in VS Code, you can follow the steps given below:
Step 1: Launch Visual Studio Code, and open your Python file (File > Open File…).
If you haven’t created a Python file yet, create a new file (File > New File), and make sure to save it with a .py extension.
Step 2: Select a Python interpreter by clicking on the Python version in the bottom left of the status bar, or use the command palette (Ctrl+Shift+P) and search for “Python: Select Interpreter”.
This will show a list of available interpreters that VS Code can find automatically, including virtual environment interpreters.
Step 3: Once you have written your Python script and selected the Python interpreter, you can open a new terminal in VS Code to execute the script.
If you are using a Python virtual machine, you can use the same steps as discussed above after creating a virtual environment.
4) How to Run Python Script in Python’s IDLE
Python’s IDLE (Integrated Development and Learning Environment) is a simple IDE that comes with Python.
To run a Python script in IDLE, you can follow the steps given below:
Step 1: You can launch Python IDLE from your Start Menu (Windows), Applications folder (macOS), or application launcher (Linux).
Simply search for IDLE and click on the icon.
Step 2: Once IDLE is open, you can load your Python script into the IDLE text editor. Go to File > Open… in the menu bar.
Navigate to your Python script in the file dialog, select it, and click Open.
Step 3: After the script is loaded into the IDLE text editor, you can run it by going to Run > Run Module in the menu bar, or simply by pressing the F5 key.
Step 4: The output from your script will be displayed in the Python Shell window.
If your script includes input calls like input(), the shell will also provide a prompt for user input.
5) How to Run a Python Script Using Import
Running a Python script using import essentially involves treating the script as a module.
When you import the script, Python will execute it from top to bottom, just as if you’d run the script directly.
Suppose you have a Python script named myscript.py with the following content:
# myscript.py
def greet():
print("Hello from myscript!")
print("This will be printed upon import!")
You can run the script by importing it.
Open the Python shell by typing python or python3 (depending on your installation) in the terminal. Navigate to the directory containing myscript.py or make sure myscript.py is in a directory that’s part of your PYTHONPATH.
Import myscript with the following code:
>>> import myscript
The output of this execution will be:
6) How to Run a Python Script Using runpy.run_module() And runpy.run_path()
The runpy module in Python allows you to execute Python code dynamically.
It contains two main functions, run_module() and run_path(), which can be used to run Python scripts.
1) runpy.run_module()
The run_module() function allows you to execute a Python module without importing it.
It runs the module as if it was invoked from the command line using the -m option.
The following is an example of this method:
import runpy
# Run a standard library module as a script
# Equivalent of running "python -m http.server" from the command line
runpy.run_module(mod_name='http.server', run_name='__main__', alter_sys=True)
In this example, the http.server module from the Python standard library is being run, which will start a simple HTTP server.
2) runpy.run_path()
The run_path() function allows you to execute a Python script located at a specific path.
It reads and runs the Python file specified as the path.
The following is an example of run_path():
import runpy
# Run a script file as a standalone script
runpy.run_path('path_to_script.py', run_name='__main__')
In this example, replace ‘path_to_script.py’ with the actual path to your Python script.
This will execute the script just like running python path_to_script.py from the command line.
Supercharge your analytics game with Code Interpreter by watching the following video:
Final Thoughts
Mastering the various ways to run a Python script is an invaluable skill for any programmer. It allows you to test and execute your code across diverse platforms and environments.
By learning these techniques, you’ll find that you have more flexibility and control in your development process, whether it’s running scripts from the command line, an IDE, or even using Python’s own tools like import and runpy.
Each method discussed offers unique benefits, be it the simplicity of running scripts in an IDE, the powerful control provided by command-line execution, or the dynamic capabilities of the import statement and runpy.
Frequently Asked Questions
In this section, you will find some frequently asked questions you may have when running Python scripts.
How do I execute a Python script in terminal?
To execute a Python script in the terminal, simply type python followed by the file name, including the “.py” extension.
For example, to run a script called “script.py”, you would type:
python script.py
What is the command to run a Python script from the command line?
The command to run a Python script from the command line is the same as executing it in the terminal.
Use python followed by the file name with the “.py” extension.
For instance:
python script.py
How can I run a .py file in Windows?
To run a .py file in Windows, open the Command Prompt and navigate to the directory containing the .py file.
Then, use the command python followed by the file name with the “.py” extension.
For example:
python script.py
What are the steps to run a Python script in a specific folder?
To run a Python script in a specific folder, follow these steps:
- Open the terminal or command prompt.
- Navigate to the folder containing the .py file using the cd command. For example:
cd path/to/your/script-folder
- Run the Python script using the python command followed by the file name:
python script.py
How can I execute Python code in Visual Studio Code?
To execute Python code in Visual Studio Code, follow these steps:
- Open the Python file in Visual Studio Code.
- Ensure that the Python extension is installed and correctly configured.
- Click the “Run” button in the top-right corner, or right-click in the editor and select “Run Python File in Terminal”.
Is it possible to run a Python script in the background?
Yes, it is possible to run a Python script in the background. This can be achieved using various methods, such as appending an ampersand (&) to the command in Unix-like systems or using the start command in Windows.
For example:
- On Unix-like systems:
python script.py &
- On Windows:
start python script.py
Need to execute a Command Prompt command from Python?
If so, depending on your needs, you may use either of the two methods below to a execute a Command Prompt command from Python:
(1) CMD /K – execute a command and then remain:
import os os.system('cmd /k "Your Command Prompt Command"')
(2) CMD /C – execute a command and then terminate:
import os os.system('cmd /c "Your Command Prompt Command"')
Still not sure how to apply the above methods in Python?
Let’s then review few examples to better understand how to execute a Command Prompt command from Python.
Method 1 (CMD /K): Execute a command and then remain
To see how to apply the first method in practice, let’s review a simple example where we’ll execute a simple command in Python to:
- Display the current date in the Command Prompt
- The Command Prompt will remain opened following the execution of the command
You may then apply the following code in Python to achieve the above goals:
import os os.system('cmd /k "date"')
Once you run the code in Python, you’ll get the date in the command prompt:
The current date is: Fri 06/25/2021
Enter the new date: (mm-dd-yy)
Now what if you want to execute multiple command prompt commands from Python?
If that’s the case, you can insert the ‘&’ symbol (or other symbols, such as ‘&&’ for instance) in between the commands.
For example, what if you want to display all the characters in the command prompt in green and display the current date?
You can then use the following syntax in Python:
import os os.system('cmd /k "color a & date"')
You’ll now see the current date displayed in green:
The current date is: Fri 06/25/2021
Enter the new date: (mm-dd-yy)
Note that for more complex commands, you may find it useful to run a batch file from Python.
Method 2 (CMD /C): Execute a command and then terminate
For this method, you can execute the same commands as reviewed under the first method, only this time the Command Prompt will be closed following the execution of the commands.
For example, you may apply the following code in Python to change the color of all characters to green:
import os os.system('cmd /c "color a"')
In this case, the command will still get executed, but you may not be able to see it on your monitor.
In general, you can get a useful legend with further information by typing the command below in the Command Prompt:
cmd /?