Powerful Python One-Liners
This is a page that is devoted to short programs that can perform powerful operations. The ability to write short programs that are just as powerful as a program written in another lanuage designed to do the same thing. However, it is sometimes fun to try and write a program in Python that is only one line. In other lanugages this would be nearly impossible, but in Python it is a lot easier to do. The trick is to think up something that will "do a lot with a little." I, personally, would love to see this page expanded to the point where it needs some sort of organization system.
Thanks for Your Code, ["JAM"]
Contributed Code
- ["JAM/Code/PlatformFinder"] - This program tells you what platform you are using.
- ["JAM/Code/ComPYiler"] - This program compiles every .py file in the Python directory.
- ["Powerful Python One-Liners/Hostname"] - This programs tells you what your hostname is.
BR Some thoughts by ewo:
- Want to know how much Byte a Terabyte is? If you know further abbreviations you can extend the list.
import pprint;pprint.pprint(zip(('Byte', 'KByte', 'MByte', 'GByte', 'TByte'), [(2**10)**i for i in xrange(5)]))
- And what's the largest number that can be represented by 8 Byte?
import pprint;pprint.pprint(["%i Byte = %i Bit = largest number: %i" %(j, j*8, 256**j) for j in [2**i for i in xrange(8)]])
Cute, isn't it?
Decode a base64 encoded file
import base64, sys; base64.decode(open(sys.argv[1], "rb"), open(sys.argv[2], "wb"))
Editing a list of files in place
I came up with this one-liner in response to an [http://linuxgazette.net/issue96/orr.html article] that said it couldn't be done as an one-liner in Python.
What this does is replace the substring "at" by "op" on all lines of all files (in place) under the path specified (here, the current path).
Caution: Don't run this on your home directory or you're going to get all you text files edited. If you accidentally do it, you can easily write an antidote one-liner by editing the re.sub call.
1 import sys,os,re,fileinput;a=[i[2] for i in os.walk('.') if i[2]] [0];[sys.stdout.write(re.sub('at','op',j)) for j in fileinput(a,inplace=1)]