Vikas Kumar Choudhary wrote:
> let me know if someone has tried to implement (grep and PIPE) shell > commands in python `lspci | grep Q | grep "$isp_str1" | grep "$isp_str2" > | cut -c1-7' > > I tried to use python subprocess and OS.Popen modules. subprocess is the way to go. > I was trying porting from bash shell to python. Here's an example showing how to translate a shell pipe: http://docs.python.org/library/subprocess.html#replacing-shell-pipeline But even if you can port the shell script literally I recommend a more structured approach: import subprocess import itertools def parse_data(lines): for not_empty, group in itertools.groupby(lines, key=bool): if not_empty: triples = (line.partition(":") for line in group) pairs = ((left, right.strip()) for left, sep, right in triples) yield dict(pairs) if __name__ == "__main__": def get(field): return entry.get(field, "").lower() output = subprocess.Popen(["lspci", "-vmm"], stdout=subprocess.PIPE).communicate()[0] for entry in parse_data(output.splitlines()): if "nvidia" in get("Vendor") and "usb" in get("Device"): print entry["Slot"] print entry["Device"] print -- http://mail.python.org/mailman/listinfo/python-list