讀入一個巨大的二進制文件大小約爲1.3GB,並改變某些位,然後寫回一個單獨的文件(不能修改原始文件)。
方法
當我在它被存儲在十六進制格式是不可改變的,因爲我使用python編碼的大規模串二進制文件中讀取。
我的算法遍歷整個文件並將所有需要修改的字符串索引存儲在列表中。問題在於字符串中的所有索引都需要修改爲相同的值。由於不可變的性質,我無法做到這一點。我無法將其轉換爲字符列表,因爲這會炸燬我的記憶限制並花費很多時間。可行的做法是將其存儲在單獨的字符串中,但由於不可變的性質,我必須製作大量的字符串對象並繼續與它們連接。
我使用https://waymoot.org/home/python_string/的一些想法,但它並沒有給我一個好的表現。任何想法,目標是複製一個現有的超長字符串到另一個除了由索引列表中的值確定的某些佔位符?
替換件與原件尺寸相同嗎?我可以查找文件位置並在磁盤上寫入。 –
你說「寫回來」,但在我的回答評論說「約束是不改變原始文件」。這是一個矛盾。 –
編輯問題 - 抱歉模棱兩可 –