python怎样导出py文件_导出python模块(到字符串或py文件)
摘要:
我想要一個(gè)'module'類(lèi)型的變量并導(dǎo)出它。在
我使用import從.py文件導(dǎo)入python模塊并對(duì)其進(jìn)行更改。我需要將模塊導(dǎo)出回一個(gè)文件,或者獲取完整模塊的字符串表示形式,然后將其寫(xiě)入磁盤(pán)。在
我一直找不到任何方法來(lái)導(dǎo)出python模塊或?qū)⒛K中的對(duì)象轉(zhuǎn)換為結(jié)構(gòu)化的純文本python可執(zhí)行格式的字符串。(不是json、酸洗等)
詳細(xì)問(wèn)題和用例:
此要求是內(nèi)部構(gòu)建過(guò)程的一部分;沒(méi)有安全要求,只有我們自己的模塊(而不是內(nèi)置模塊)正在被修改。python腳本與業(yè)務(wù)邏輯一起運(yùn)行,以修改許多其他腳本。此進(jìn)程使用僅在生成時(shí)可用的信息。因此,我無(wú)法選擇在運(yùn)行時(shí)導(dǎo)入具有不同數(shù)據(jù)的模塊。在
最初的系統(tǒng)使用了一個(gè)帶有占位符字符串的模板,這些占位符字符串將被替換,但當(dāng)前的需求要求對(duì)對(duì)象聲明進(jìn)行更復(fù)雜的修改,在這種情況下,通過(guò)編程修改對(duì)象要比字符串替換容易得多。在
我做了什么
有了用python編寫(xiě)的主生成器腳本,我可以導(dǎo)入多個(gè)模塊(它們只有變量聲明,沒(méi)有可執(zhí)行代碼),并進(jìn)行所有需要的替換。剩下的是module類(lèi)型的變量,需要將其導(dǎo)出回一個(gè)文件中,以便以后執(zhí)行。在
@阿巴內(nèi)特有一些好主意。我不知道repr函數(shù)。這給了我信息,但沒(méi)有任何格式。這讓我看到了pprint,它與我所喜歡的非常接近。在
示例
示例.py在sample = {
'level1_dict_1' : {
'key1' : 'value1',
'key2' : {
'level2_dict' : {
'key1' : 'value3',
'key2' : ['list1','list2','list3','list4'],
}
}
},
'level1_dict_2' : {
'key1' : 'value1',
'key2' : 'value2',
},
}
大大簡(jiǎn)化了(并且沒(méi)有應(yīng)用任何業(yè)務(wù)邏輯),我基本上想做以下事情:
^{pr2}$
我希望有與源文件相同的格式,但是pprint雖然可讀,但格式與我希望的不同。這可能是我所需要的。在
p打印輸出:sample =
{'level1_dict_1': {'key1': 'value1',
'key2': {'level2_dict': {'key1': 'value3',
'key2': ['list1',
'list2',
'newlistitem3',
'list4']}}},
'level1_dict_2': {'key1': 'value1', 'key2': 'value2'}}
編輯和澄清:
-我的目標(biāo)是加載一個(gè)模塊,修改它,然后將它保存回一個(gè)可執(zhí)行的python文件。這就是我反對(duì)pickle、json等的原因。
-重寫(xiě)用例以進(jìn)行澄清
-增加了我嘗試過(guò)的例子和更多信息
總結(jié)
以上是生活随笔為你收集整理的python怎样导出py文件_导出python模块(到字符串或py文件)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 拍拍贷委外处理怎么还
- 下一篇: 尿素相关股票龙头