[Tutor] flag to call methods on objects?
prasad rao
prasadaraon50 at gmail.com
Thu Jul 30 10:39:15 CEST 2009
hello
I wanted to prevent other users of my computers to read my files.
So tried to creat a module to achieve it.
I used a flag to deside which methods to be called on the object.
somehow it is not working.I realise after 2 days of struggle that
as it is usuel , I am blind to my faults.
I tested all the metheds except main() in idle interactively,found them
working.
So there is a bug in the main(), kan anyone point it out to me?
<code>
#! usr/bin/env python
import ast,random,os,zlib,string
key=5
class Cripto(object):
def __init__(self,afile):
self.afile=afile
def __digi(self,astring):
y=[]
for x in astring:
y.append(ord(x))
y=str(y)
return y
def __undigi(self,astring):
alist=ast.literal_eval(astring)
y=[]
for x in alist:
y.append(chr(x))
astring=''.join(y)
return astring
def __gen_string(self):
s=''
nl=random.sample(string.ascii_letters,key)
for x in nl:s+=x
return s
def __lengthen(self,astring):
s=list(astring)
ns=''
for x in s:
ns+=x
ns+=gen_string()
return ns
def __shorten(self,astring):
s=list(astring)
ns=''
for x in range(0,len(s),key+1):
ns+=s[x]
return ns
def __compress(self,astring):
astring=zlib.compress(astring)
return astring
def __decompress(self,astring):
astring=zlib.decompress(astring)
return astring
def main(self):
sorce=open(self.afile,'r')
data=(sorce.readlines())
dest=open ((os.path.split(self.afile)[0]+os.sep+'temp'),'w')
if data[:1]=='flag1\n':
ns='flag0\n'
data=data[1:]
for line in data:
nl=__compress((__digi(__lengthen(line.strip()))))+'\n'
ns+=nl
dest.write(ns)
elif data[:1]=='flag0\n':
ns='flag1\n'
data=data[1:]
for line in data:
nl=__decompress((__undigi(__shorten(line.strip()))))+'\n'
ns+=nl
dest.write(ns)
sorce.close()
dest.close()
os.remove(self.afile)
os.rename((os.path.split(self.afile)[0]+os.sep+'temp'),self.afile)
#========
a=Cripto('C:/pp.txt')
a.main()
<\code>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/tutor/attachments/20090730/abd2c74a/attachment.htm>
More information about the Tutor
mailing list