Open In App

Run shell command from GUI using Python

Last Updated : 20 Oct, 2021
Improve
Improve
Like Article
Like
Save
Share
Report

In this article, we are going to discuss how we can create a GUI window that will take Operating System commands as input and after executing them, displays the output in a pop-up window.

Modules Required:

PyAutoGui: It is a module in python which is used to automate the GUI and controls the mouse and keyboard.  It is an external module, it can be installed in the system using the below command:

Linux:
pip3 install pyautogui
Windows:
pip install pyautogui

OS: The OS module in Python provides functions for interacting with the operating system.This module comes under Python’s standard utility modules. It provides a portable way of using operating system dependent functionality.

Approach:

  • Import modules.
  • Use the prompt() of pyautogui module to take input command
  • Use the system() of os module to execute the command.
  • Finally, call the popen() of os module to generate a pop-up window and then using alert() of pyautogui module to display output.

Implementation:

Below program depicts how to create a window which takes operating system commands as input.

Python3




# import required modules
import os
import pyautogui
 
# prompts message on screen and takes the
# input command in val variable
val = pyautogui.prompt("Enter Shell Command")
 
# executes the value of val variable
os.system(val)


Output:

However, when commands are entered they are performed in the background. Below is a better version of the above previous python program in which on the execution of the given command, the output is displayed in a popup window.

Python3




# import required modules
import os
import pyautogui
 
# prompts message on screen and gets the command
# value in val variable
value = pyautogui.prompt("Enter Shell Command")
 
# executes the command and returns
# the output in stream variable
stream = os.popen(value)
 
# reads the output from stream variable
out = stream.read()
pyautogui.alert(out)


Output:



Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads