I could use some help making this Python code run faster using only Python code.

Tim Williams tdwdotnet at gmail.com
Thu Sep 20 19:10:32 EDT 2007


On 21/09/2007, Tim Williams <tdwdotnet at gmail.com> wrote:
> On 20/09/2007, Python Maniac <raychorn at hotmail.com> wrote:
> > I am new to Python however I would like some feedback from those who
> > know more about Python than I do at this time.
> >
> > def scrambleLine(line):
> >    s = ''
> >    for c in line:
> >        s += chr(ord(c) | 0x80)
> >    return s
> >
> > def descrambleLine(line):
> >    s = ''
> >    for c in line:
> >        s += chr(ord(c) & 0x7f)
> >    return ''.join( [chr(ord(c) & 0x7f) for c in line] )
> >
> > def scrambleFile(fname,action=1):
> >    if (path.exists(fname)):
> >        try:
> >            f = open(fname, "r")
> >            toks = fname.split('.')
> >            while (len(toks) > 2):
> >                toks.pop()
> >            fname = '.'.join(toks)
> >            if (action == 1):
> >                _fname = fname + '.scrambled'
> >            elif (action == 0):
> >                _fname = fname + '.descrambled'
> >            if (path.exists(_fname)):
> >                os.remove(_fname)
> >            ff = open(_fname, "w+")
> >            if (action == 1):
> >                for l in f:
> >                    ff.write(scrambleLine(l))
> >            elif (action == 0):
> >                for l in f:
> >                    ff.write(descrambleLine(l))
> >        except Exception, details:
> >            print 'ERROR :: (%s)' % details
> >        finally:
> >            f.close()
> >            ff.close()
> >    else:
> >        print 'WARNING :: Missing file "%s" - cannot continue.' % fname
> >
> > --
>
>
> def scrambleLine(line):
>   return ''.join( [chr(ord(c) | 0x80) for c in line] )
>
> def descrambleLine(line):
>    return ''.join( [chr(ord(c) & 0x7f) for c in line] )
>
> def scrambleFile(fname,action=1):
>       try:
>           f = open(fname, "r")
>           fname = '.'.join(fname.split('.')[:2])
>           if action:
>               _fname = fname + '.scrambled'
>           else:
>               _fname = fname + '.descrambled'
>           ff = open(_fname, "w")
>           if action:
>               ff.write('\r\n.join([scrambleLine(l) for l in f ]))
>           else :
>               ff.write('\r\n.join([descrambleLine(l) for l in f ]))
>           f.close()
>           ff.close()
>       except Exception, details:
>           print 'ERROR :: (%s)' % details
>
> HTH :)
>

or maybe even this:

Apologies for the self-reply, its late here !
(a couple of typos fixed too! )

def scrambleFile(fname,action=1):
      try:
          f = open(fname, "r")
          fname = '.'.join(fname.split('.')[:2])
          if action:
              ff = open(fname + '.scrambled', "w")
              ff.write('\r\n'.join([scrambleLine(l) for l in f ]))
          else :
              ff = open(fname + '.descrambled', "w")
              ff.write('\r\n'.join([descrambleLine(l) for l in f ]))
          f.close()
          ff.close()

      except Exception, details:
          print 'ERROR :: (%s)' % details

:)



More information about the Python-list mailing list