Staging
v0.5.1
v0.5.1
https://github.com/python/cpython
Revision b6987b13fecdfbbc3a45e84025754d06ad18fca9 authored by Guido van Rossum on 07 April 1999, 18:32:51 UTC, committed by Guido van Rossum on 07 April 1999, 18:32:51 UTC
before exiting when an error happened. This didn't work right when Python is invoked from a daemon.
1 parent a99c5db
Tip revision: b6987b13fecdfbbc3a45e84025754d06ad18fca9 authored by Guido van Rossum on 07 April 1999, 18:32:51 UTC
Alas, get rid of the Win specific hack to ask the user to press Return
Alas, get rid of the Win specific hack to ask the user to press Return
Tip revision: b6987b1
base64.py
#! /usr/bin/env python
# Conversions to/from base64 transport encoding as per RFC-MIME (Dec 1991
# version).
# Parameters set by RFC-1421.
#
# Modified 04-Oct-95 by Jack to use binascii module
import binascii
MAXLINESIZE = 76 # Excluding the CRLF
MAXBINSIZE = (MAXLINESIZE/4)*3
# Encode a file.
def encode(input, output):
while 1:
s = input.read(MAXBINSIZE)
if not s: break
while len(s) < MAXBINSIZE:
ns = input.read(MAXBINSIZE-len(s))
if not ns: break
s = s + ns
line = binascii.b2a_base64(s)
output.write(line)
# Decode a file.
def decode(input, output):
while 1:
line = input.readline()
if not line: break
s = binascii.a2b_base64(line)
output.write(s)
def encodestring(s):
import StringIO
f = StringIO.StringIO(s)
g = StringIO.StringIO()
encode(f, g)
return g.getvalue()
def decodestring(s):
import StringIO
f = StringIO.StringIO(s)
g = StringIO.StringIO()
decode(f, g)
return g.getvalue()
# Small test program
def test():
import sys, getopt
try:
opts, args = getopt.getopt(sys.argv[1:], 'deut')
except getopt.error, msg:
sys.stdout = sys.stderr
print msg
print """usage: basd64 [-d] [-e] [-u] [-t] [file|-]
-d, -u: decode
-e: encode (default)
-t: decode string 'Aladdin:open sesame'"""
sys.exit(2)
func = encode
for o, a in opts:
if o == '-e': func = encode
if o == '-d': func = decode
if o == '-u': func = decode
if o == '-t': test1(); return
if args and args[0] != '-':
func(open(args[0], 'rb'), sys.stdout)
else:
func(sys.stdin, sys.stdout)
def test1():
s0 = "Aladdin:open sesame"
s1 = encodestring(s0)
s2 = decodestring(s1)
print s0, `s1`, s2
if __name__ == '__main__':
test()
Computing file changes ...