Collecting grep output via os.system() in Python

Question:

I am trying to use this Ubuntu command on a Linux OS in python

cmd = "grep -n 'str' file.txt"

in the script, im trying to use

command = os.system(cmd)

but when i try to print the variable, it only prints a '0', but in the output appears 1:str. Is there a way to make set this output as a variable?

Asked By: Gabriel

||

Answers:

You’re getting 0 because that’s the exit code of the process. Per the documentation for os.system():

On Unix, the return value is the exit status of the process

To get the behavior you want, use the subprocess package instead, like this:

import subprocess
command = subprocess.check_output(cmd, shell=True)
Answered By: CryptoFool
Categories: questions Tags:
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.