Python Linux Command executor

・1 min read

# IMPORTING LIBRARIES 
import subprocess
import shlex

def cmdExecutor(cliCmd):
    # COLLECT THE COMMAND AND SPLIT USING SHLEX
    cmd = shlex.split(cliCmd)
    # EXECUTE THE SUBPROCESS WITH COMMUNICATE()
    process,error = subprocess.Popen(cmd, stdout = subprocess.PIPE, stderr= subprocess.PIPE).communicate()
    print("Command executed successfully")
    # DECODE THE RESPONSE FROM THE SUBPROCESS TO UTF-8
    error = error.decode("utf-8")
    if(str(error)==None or str(error)==""):
        output="SUCCESS"
    else:
        output = "ERROR => "+str(error)
    return output
DISCUSS (2)
 

Hi muTheTechie, I think you can simplify the error checking like this:

def cmdExecutor(cliCmd):
    cmd = shlex.split(cliCmd)
    process, error = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE).communicate()
    print("Command executed successfully")
    if error:
      return f"ERROR => {error.decode('utf-8')}"
    else:
      return "SUCCESS"

you don't need to convert the error to a string

 
Classic DEV Post from Dec 25 '18

My 2018 Year in Review on dev.to

My favourite posts from the year ... in no particular order

Loving #opensource #AWS #python

Sore eyes?

dev.to now has dark mode.

Go to the "misc" section of your settings and select night theme ❤️