第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會有你想問的

Python 從字節(jié) IO 導(dǎo)入(或更一般地從內(nèi)存中的對象)

Python 從字節(jié) IO 導(dǎo)入(或更一般地從內(nèi)存中的對象)

aluckdog 2022-10-06 19:26:05
語境:我目前有一個(gè)程序,它使用另一個(gè)SO 線程中顯示的方法從它們的文件路徑(在映射的網(wǎng)絡(luò)驅(qū)動(dòng)器中)加載一組插件。這些插件被設(shè)計(jì)為滾動(dòng)發(fā)布,這意味著我需要不斷地訪問來編寫它們。當(dāng)前機(jī)制鎖定文件,所以我必須要求所有人關(guān)閉軟件,以便我可以更新文件。問題:我想知道是否有一種方法,可能使用與上面鏈接的方法類似的方法,從io.BytesIO插件原始內(nèi)容的對象中導(dǎo)入文件(因此解鎖文件讓我隨意進(jìn)行更改)。更普遍:更具體地說,我可以在不接觸物理磁盤的情況下將原始模塊內(nèi)容保存在內(nèi)存中嗎?如果這樣的事情是不可能的,有沒有辦法將這些模塊完全加載到內(nèi)存中,這樣我就可以解鎖正在導(dǎo)入的文件?正如我在評論中所說,我知道您可以在基于 Linux 的操作系統(tǒng)上安裝虛擬文件系統(tǒng)(這可能解決了我的問題),但遺憾的是,我為 Windows 和 Microsoft 開發(fā)永遠(yuǎn)無法讓您的生活變得輕松!:-)筆記:我不是在問我可以在哪里復(fù)制這些文件以從本地版本(例如臨時(shí)、緩存等)導(dǎo)入它們。我知道這是一個(gè)非常專業(yè)的問題,因此非常感謝任何幫助
查看完整描述

1 回答

?
Smart貓小萌

TA貢獻(xiàn)1911條經(jīng)驗(yàn) 獲得超7個(gè)贊

雖然不是像我最初要求的那樣來自對象,但在找到這篇非常有用的文章io.BytesIO后,我能夠從其源中導(dǎo)入模塊。我沒有在這里復(fù)制代碼,因?yàn)樗浅4?,盡管我能夠讓它成功導(dǎo)入虛擬模塊。

以下代碼是在我修改加載器以刪除公共前綴后,并通過首先執(zhí)行源代碼,globals從中獲取,最后使用 Python 的type方法創(chuàng)建模塊類來創(chuàng)建模塊的類。

它不是特別漂亮,而且肯定違反了一些 Python 風(fēng)格的建議,所以我絕對愿意改進(jìn)!

source = """def hello():

    print("I don't want to say hi to the world")"""

name = "my_module"


glo = {}

exec(source, glo)


injector = DependencyInjector()

injector.provide(name, type(name, (), glo))

injector.install()


foo = __import__(name)

foo.hello()


查看完整回答
反對 回復(fù) 2022-10-06
  • 1 回答
  • 0 關(guān)注
  • 123 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號