Created
June 29, 2015 15:31
-
-
Save AgustinLado/4fd1355bf5b8edae2261 to your computer and use it in GitHub Desktop.
Get a random line from the Zen of Python without a print (preferably for a colorful cow to chant!)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Get a random line from the Zen of Python without a print (preferably for a colorful cow to chant!) | |
# Replace stdout by an anonymous class that returns nothing on write() | |
import sys | |
stdout = sys.stdout | |
sys.stdout = type('BlackHole', (), {'write': (lambda self, string: '')})() | |
# This import's output has now been supressed | |
import this | |
# Restate stdout | |
sys.stdout = stdout | |
# Get a list of this' zen-lines and print a random one. | |
import random | |
print random.choice(''.join([this.d.get(i, i) for i in this.s]).splitlines()[2:]) | |
# Condensed into a line: | |
import sys, random; stdout = sys.stdout; sys.stdout = type('BlackHole', (), {'write': (lambda self, string: '')})(); import this; sys.stdout = stdout; print random.choice(''.join([this.d.get(i, i) for i in this.s]).splitlines()[2:]); | |
# For the colorful cow run in a shell and pipe to cowsay and lolcat :P | |
# python -c "import sys, random; stdout = sys.stdout; sys.stdout = type('BlackHole', (), {'write': (lambda self, string: '')})(); import this; sys.stdout = stdout; print random.choice(''.join([this.d.get(i, i) for i in this.s]).splitlines()[2:]);" | cowsay | lolcat | |
# cowsay: Likely to be in your distro's repository (e.g. sudo apt-get cowsay) | |
# lolcat: It's a Ruby gem. Make sure you have Ruby installed and run gem install lolcat | |
# Add to .bashrc for ultimate zen-ness |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment