On 13/06/18 09:08, Ganesh Pal wrote:
Hi Team,
I wanted to parse a file and extract few feilds that are present after "="
in a text file .
Example , form the below line I need to extract the values present after
--struct =, --loc=, --size= and --log_file=
Sample input
line = '06/12/2018 11:13:23 AM python toolname.py --struct=data_block
--log_file=/var/1000111/test18.log --addr=None --loc=0 --mirror=10
--path=/tmp/data_block.txt size=8'
Did you mean "--size=8" at the end? That's what your explanation implied.
Expected output
data_block
/var/1000111/test18.log
0
8
Regexs are more complicated than you need for this. Plain split will do.
line = '06/12/2018 11:13:23 AM python toolname.py --struct=data_block
--log_file=/var/1000111/test18.log --addr=None --loc=0 --mirror=10
--path=/tmp/data_block.txt --size=8'
for item in line.split():
if item.startswith("--struct="):
# You may want to tidy this up
print(item[9:])
# ...and so on for the other fields
Alternatively you could observe this is a previously solved problem and
abuse argparse:
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("prefix", nargs=5)
parser.add_argument("--struct")
parser.add_argument("--log_file")
parser.add_argument("--addr")
parser.add_argument("--loc")
parser.add_argument("--mirror")
parser.add_argument("--path")
parser.add_argument("--size")
line = '06/12/2018 11:13:23 AM python toolname.py --struct=data_block
--log_file=/var/1000111/test18.log --addr=None --loc=0 --mirror=10
--path=/tmp/data_block.txt --size=8'
args = parser.parse_args(line.split())
print(args)
--
Rhodri James *-* Kynesim Ltd
--
https://mail.python.org/mailman/listinfo/python-list