0
我有兩個python腳本,需要相互傳遞大的變量:python1.py和python2.py。Python - 從內存中檢索變量?
假設python1.py正在運行並創建了一個非常大的列表變量'x'。目前,我正在將硬盤驅動器保存(酸洗)'x',然後使用子進程運行python2.py,然後從硬盤驅動器加載'x'(我需要兩個不同的python文件,因爲我正在嘗試並行計算)。
是否有替代方案,我可以通過一個指向內存的參數調用python2.py,然後讓python2.py根據直接在內存中查找來創建'x'?
您是否使用生成器腳本(它創建您的'x'列表)啓動第二個腳本? 「非常大」有多大?計算的順序是否重要? – 2014-09-20 15:30:49
mmap應該可以做到這一點。本文可能有所幫助:http://blog.schmichael.com/2011/05/15/sharing-python-data-between-processes-using-mmap/ – Lanting 2014-09-20 15:34:16
如果這是linux,您可以導入python2並使用多處理模塊分叉到你想在那裏運行的功能。在linux中,當你fork時,你有相同的內存,所以你不需要序列化它。在Windows上,無論如何序列化,所以沒有真正的好處。 – tdelaney 2014-09-20 15:39:06