Dear Python friends, I am on Python 2.7 and Linux . I am trying to extract the address "1,5,147456:8192" from the below stdout using re.search
(Pdb) stdout 'linux-host-machine-1: Block Address for 1,5,27320320:8192 (block 1,5,147456:8192) --\nlinux-host-machine-1: magic 0xdeaff2fe mark_cookie 0x300000000000000a\n' (Pdb) type(stdout) <type 'str'> Here is the code I have come up with, this looks buggy please review the same and suggest any better ways to code. Could we use splitlines() or re.complie() etc , my intention is to match 1,5,147456:8192 and return the same. #Sample code import re import subprocess_run def get_block(): try: cmd = "get_block_info -l" # stdout is the output retrieved by subprocess.Popen() stdout, stderr, exitcode = subprocess_run(cmd) search_pat = 'Block Address.* \(block (\d+),(\d+),(\d+):(\d+)' matched = re.search(search_pat, stdout) block = (int(matched.group(1)), int(matched.group(2)), int(matched.group(3)), int(matched.group(4)), ) except IOError, e: logging.warning('Error reading lines from "%s" (%s).' % (cmd, e)) if block is None: logging.error("block not found") return False logging.info("block not found") return block Regards, Ganesh -- https://mail.python.org/mailman/listinfo/python-list