2014-04-18 39 views
0

我有一個要求,"Encode the file by adding 5 to every byte in the file"。我試圖打開文件作爲讀取二進制文件,但所做的只是添加一個b到字符串的開頭 - 我不認爲這是聲明的期望。我嘗試着看着泡菜,但我不認爲這是正確的。更改文件中的字節?

這還意味着什麼?任何有關可能的解決方案的想法?

+0

您正在使用哪種版本的Python?在Python 3中,'bytes'類型(打印出來的形式類似一個帶有''b前綴的字符串)可以被索引或迭代以獲得整數。你的問題可能和'output_file.write(bytes(b + 5 for input_file.read())')一樣簡單''' – Blckknght

回答

2

實際上它並不增加b到字符串的開頭 - b只是一個標誌就代表你的時候,讓你知道這是一個bytes類型,而不是str那蟒蛇穿串。字節是真的只是數字(0-255),這樣就可以通過字節物體走,讓每一個值,計算出什麼號碼它對應,並添加5等

提示 - 這個任務可能變得更容易,如果您選擇使用bytearray來存儲字節。