Python Forum
Capture grep output to a variable which includes another variable
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Capture grep output to a variable which includes another variable
#1
I have set a variable strFileExt to a file path/name: /var/log/error.log.112119

I would now like to grep that file, capturing output to a second variable. If there is no output (text does not exist) I will exit. If it does return output, I will then move on to perform other things with this file.

I have tried many variations of the following to no success:

strFile = os.popen('grep -rlw "reported errors in the" + strFileExt+').read()
Is there a way to set this strFile variable using the grep command which includes the first set variable of strFileExt ?

Thanks in advance.
Reply
#2
I would suggest to use subprocess.run command, e.g.

import subprocess
what = "what"
where = "/home/yourfolder/yourfile"
p = subprocess.run(["grep", what, where], capture_output=True)   
p.stdout  # is what you need
Reply
#3
Scidam, that looked promising, but getting error. Also, had to change subprocess.run to subprocess.call due to being on Python 2.7.

Here's my code:
#!/usr/bin/env python
# -*- coding: utf-8 -*-

strFileExt=""
strFile=""


# import required modules
import datetime
import os
import subprocess
now = datetime.datetime.now()

# for testing timie format
# print (now.strftime(("%m%d%y"))
#print (now.strftime("%m%d%y"))
strFileExt = "/var/logs/error.log."+(now.strftime("%m%d%y"))
print strFileExt

what = " reported errors in the "
where = strFileExt
print what
print where

p = subprocess.call(["grep -rlw ", what, where])
strFile=p.stdout
print strFile
whether I use p.stdout or try to stuff it in a variable as above, the error is the same, shown below:

/var/logs/error.log.112219
 reported errors in the
/var/logs/error.log.112219
Traceback (most recent call last):
  File "./integ_recheck.py3", line 25, in <module>
    p = subprocess.call(["grep -rlw ", what, where])
  File "/usr/lib64/python2.7/subprocess.py", line 524, in call
    return Popen(*popenargs, **kwargs).wait()
  File "/usr/lib64/python2.7/subprocess.py", line 711, in __init__
    errread, errwrite)
  File "/usr/lib64/python2.7/subprocess.py", line 1327, in _execute_child
    raise child_exception
OSError: [Errno 2] No such file or directory
Reply
#4
(Nov-22-2019, 02:22 PM)kdefilip2 Wrote: Scidam, that looked promising, but getting error.
You should split each command and pass these commands as a list, e.g.
p = subprocess.call(["grep", "-rlw", what, where])
Reply
#5
Hi Scidam,

Thanks for all your help. The only way I could get this working was with the following:
p = Popen(["grep", "-wl", what, where], stdout=True, stderr=True)
p.communicate()[0]
It now returns proper grep output, i.e., when found it returns the filename, when not found, it returns nothing.

I now need to find a way to compare the result:
IF Found
do a bunch of other stuff
ELSE
Exit

But I guess that will be for another post.

Thanks again.

kd
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  Help with writing monitored data to mysql upon change of one particular variable donottrackmymetadata 3 201 Apr-18-2024, 09:55 PM
Last Post: deanhystad
  Commas issue in variable ddahlman 6 399 Apr-05-2024, 03:45 PM
Last Post: deanhystad
  Variable Explorer in spyder driesdep 1 206 Apr-02-2024, 06:50 AM
Last Post: paul18fr
  Mediapipe. Not picking up second variable stevolution2024 1 176 Mar-31-2024, 05:56 PM
Last Post: stevolution2024
Question Variable not defined even though it is CoderMerv 3 256 Mar-28-2024, 02:13 PM
Last Post: Larz60+
  optimum chess endgame with D=3 pieces doesn't give an exact moves_to_mate variable max22 1 259 Mar-21-2024, 09:31 PM
Last Post: max22
  unbounded variable akbarza 3 493 Feb-07-2024, 03:51 PM
Last Post: deanhystad
  Variable for the value element in the index function?? Learner1 8 633 Jan-20-2024, 09:20 PM
Last Post: Learner1
  Variable definitions inside loop / could be better? gugarciap 2 434 Jan-09-2024, 11:11 PM
Last Post: deanhystad
  working directory if using windows path-variable chitarup 2 727 Nov-28-2023, 11:36 PM
Last Post: chitarup

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020