popen
What is it?
The popen package provides a simple shell-like syntax inside python for running external commands.
Features:
Chaining (aka. piping) as Sh('ls') | 'sort'
Redirect stderr to stdout as Sh('make').include_stderr | 'wc'
Redirect output to file as Sh('ls') > '~/listing.txt'
Iteration over output lines as for line in Sh('ls'):
Streaming input into commands in the chain as Sh.pipe('~/listing.txt').Sh('grep', '-q', 'code').returncode
Expands special characters (~*!?)
Expands env vars ($HOME) as print Sh('ls', '$USER', '~/*')
Properly splits strings ('echo "hole in one"' becomes ['echo', 'hole in one'])
Or iterable arguments (Sh('ls', '-l') | ['wc', '-l'] > '/dev/null')
TL;DR
Installation:
pip install popen
Example:
from popen import Sh
for line in Sh('du', '~/') | 'head -n 10' | 'sort -n':
print('GOT', line)
Usage
Simples usage, run a command and iterate the output lines:
from popen import Sh
for line in Sh('ls', '-la', '~'):
print line
Piping that output to a file:
Sh('ls', '-la', '~') > '~/listing'
Note that special characters like ~ are expanded, as are environment variables (e.g. $HOME).
Chaining commands is trivial, here with append instead of write to file:
Sh('ls') | Sh('sort') >> '~/listing'
But the right hand side of | can be very flexible, as it employs lexical splitter on string input or takes an iterable:
Sh('ls', '-la', '~') | 'sort -c' | ['uniq', '-c'] | 'tail' | Sh('wc') > '~/listing'
To run a command and let output go to stdout, ask for the return code:
cmd = Sh('ls') | 'grep polka'
print cmd.returncode
To pipe a string into a command, wrap in an iterable:
print Sh.pipe(['this is a \nmulti line\nstring.']) | 'wc'
Release files for popen 0.1.20
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| popen-0.1.20.tar.gz | 7.0 kB | Details |
Release files / popen-0.1.20.tar.gz
| Download URL | popen-0.1.20.tar.gz |
|---|---|
| Size | 7.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
9271dc3525fd34c1105acc106044ae01580830fd79361ad83c34d7cdfb6b385f
|
|
BLAKE2b-256 checksum How to use checksums |
04b12bb086fa75a407ff446963ebabc7a91538c4b6c64499f857d94709be54fc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |