2013-08-28 35 views
0

我有一個Python腳本,它從任何目標文件中加載二進制數據,並將其存儲在 本身的列表中。問題是存儲的文件越大,下次打開文件的時間就越長。假設我想加載700 MB電影並將其存儲在我的腳本文件中。然後想象我第二天打開它,存儲在該腳本中的700 MB數據。它需要一個永恆的打開它!需要一個「永恆」來運行我的Python腳本

下面是腳本文件外觀的簡化佈局。

第1行:「700 MB電影存儲在列表中。」

以下全部內容:「最終用戶使用的所有功能。」

在解釋器達到用戶等待被調用的函數之前, 必須首先解釋第一行上的700 MB數據!這是一個問題 ,因爲誰想等一個小時纔打開腳本?

所以,如果我改變這樣的文件的佈局會有幫助嗎?

第一行:「最終用戶使用的所有功能」。下圖:「MB電影700 存儲在列表中。」

會有幫助嗎?或者,在函數被調用之前,解釋器是否必須遍歷所有700 MB?

+0

那700 MB是否有某種格式,或者它是電影? – badc0re

+1

您在地球上如何以及爲何在Python中存儲700Mb文件? –

+0

你到底在做什麼?字節?如果是這樣,'str'(或者Python 3.x中的'bytes')或'bytearray'會好很多。這不太可能解決您遇到的任何問題,但值得考慮的還有其他許多原因。 – abarnert

回答

1

Python編譯器的工作方式使得您正在尋找的東西非常難以說明。首先,每次改變腳本(例如通過添加文件),它將在執行之前觸發一個新的編譯週期(在.pyc文件中轉換一個.py文件)。其次,每次導入模塊時,都會將大塊數據加載到內存中(無論是在導入時還是在第一次訪問數據時)。

這不僅速度慢,而且也不安全且容易出錯。

我猜你打算做的是,分發一個單獨的文件,其中的數據。

你也許可以做到這一點使用這個小竅門:

製作的executable python package(zip文件基本)。 使用zipfile模塊構建zip文件非常簡單。

相關問題