Python/One-Liners: Difference between revisions
From charlesreid1
No edit summary |
No edit summary |
||
| (One intermediate revision by the same user not shown) | |||
| Line 18: | Line 18: | ||
$ curl "https://git.charlesreid1.com/api/v1/user/repos?access_token=a936efc887b1947561ab901d08abe3b3b3128a80" | python -m json.tool | $ curl "https://git.charlesreid1.com/api/v1/user/repos?access_token=a936efc887b1947561ab901d08abe3b3b3128a80" | python -m json.tool | ||
</pre> | </pre> | ||
===exit codes=== | |||
To illustrate the difference in how bash treats exit codes: 0 means process completed normally/successfully, 1 means error: | |||
(Note: In bash, <code>&&</code> means "only run this code if the prior command succeeds.") | |||
<pre> | |||
$ python && echo "hello world" | |||
>>> import sys | |||
>>> sys.exit(0) | |||
hello world | |||
$ | |||
</pre> | |||
<pre> | |||
$ python && echo "hello world" | |||
>>> import sys | |||
>>> sys.exit(1) | |||
$ | |||
</pre> | |||
[[Category:One-Liners]] | |||
[[Category:Python]] | |||
[[Category:JSON]] | |||
[[Category:Shell]] | |||
[[Category:Unix]] | |||
Latest revision as of 18:28, 6 November 2018
Here's the trick to using python as a one liner: sys.stdin.read()
quick example
echo "zero one two three" | python -c 'import sys; print(sys.stdin.read().split(" ")[2])
Above, we print sample output and pipe it to a python program..
The Python takes everything from stdin and reads it into a string, turns it into a list by splitting at spaces, and prints the third item in the list.
parsing json
To parse json, use -m json.tool:
$ curl "https://git.charlesreid1.com/api/v1/user/repos?access_token=a936efc887b1947561ab901d08abe3b3b3128a80" | python -m json.tool
exit codes
To illustrate the difference in how bash treats exit codes: 0 means process completed normally/successfully, 1 means error:
(Note: In bash, && means "only run this code if the prior command succeeds.")
$ python && echo "hello world" >>> import sys >>> sys.exit(0) hello world $
$ python && echo "hello world" >>> import sys >>> sys.exit(1) $