クラスの割り当てについては、AmazonのKindleデジタル著作権管理の実装がどのように機能するのか、それを克服する方法を分析しています。私の研究では、暗号化からブックデータを抽出する一連のPythonスクリプトが出てきました。それは私の論文の暗号解読の部分を説明するための私の必要に合っています。Pythonコードスニペットの説明
問題は、私はPythonに堪能ではなく、print 'Hello World'
以外の経験があります。ソースコードを自分の道を作業している場合
、私は
def __init__(self, infile):
# initial sanity check on file
self.data_file = file(infile, 'rb').read()
self.mobi_data = ''
self.header = self.data_file[0:78]
if self.header[0x3C:0x3C+8] != 'BOOKMOBI' and self.header[0x3C:0x3C+8] != 'TEXtREAd':
raise DrmException("invalid file format")
self.magic = self.header[0x3C:0x3C+8]
self.crypto_type = -1
このスニペットに出くわしたコードの私の解釈は、このように書きます:
self.data_file
はread()
によって返されるバイト配列でありますfile(infile, 'rb')
コールで。self.header
は、データファイル
私はちょうどself.header[0x3C:0x3C+8]
は何を意味していることだ問題の最初の79バイトの値はありますか?
'[0:78]'の長さは79ではなく78です。スライスには終了値が含まれていないので、 '0..77'です。 –
@ MarkRansom、私が扱うほとんどのコードは、排他的ではなく、最後の値を含みます。先端に感謝します。 – Jason