It seems unreasonably hard to write simple one-line unix command line filters in python:
eg: ls | python -c "<something> print x.upper()" to get at sys.stdin or similar needs an import, which makes a subsequent for-loop illegal. python -c "import sys; for x in sys.stdin(): print x" <<- SyntaxError Am I missing something obvious? The best I've come up with is to use sitecustomize.py to add to __builtin__ def stdin(): import sys for x in sys.stdin(): if not x: return yield x.strip() import __builtin__ __builtin__.stdin = stdin This allows ls | python -c "for x in stdin(): print x.upper()" Is there a better solution - if not is this worth a PEP? -- http://mail.python.org/mailman/listinfo/python-list