2014-02-07 120 views
0

我想用補碼操作符來刪除文本文件。混淆文件的加密

import sys 
def encrypt(): 
    try: 
     fs=open('SOURCE.txt','r')    #normal file 
     ft=open('TARGET.txt','w')    #encrypted file 
    except: 
     print "File opening error!" 
     sys.exit(1) 
    while True: 
     ch=fs.read(1) 
     if not ch: 
      break 
     ft.write((ord(ch))^65535) 
    fs.close() 
    ft.close() 
encrypt() 

TypeError: expected a character buffer object 

爲什麼,它給這個錯誤:下面

代碼給出?任何解決方案?

回答

0

如果你看完整回溯,你會看到錯誤就在這裏

ft.write((ord(ch))^65535) 

write預期的字符緩衝區對象(如字符串),但你逝去的int

但是,您不能只使用str(),因爲它會將該字節轉換爲ASCII。要將其寫爲二進制數據,請使用bytearray()

ft.write(bytearray([ord(ch)^0xff])) 
+0

你說得對,我錯了。 – Vader