我正在嘗試在 python 中讀取和編輯組態檔。這是檔案結構:
main.py
folder
-> __init__.py
-> module.py
-> config.py
我有四個檔案:
主檔案
import folder.config as config
import folder.module as module
if __name__ == "__main__":
config.x = 2
module.foo()
初始化.py
import os, sys; sys.path.append(os.path.dirname(os.path.realpath(__file__)))
模塊.py
import config
def foo():
print("Result from function: " str(config.x))
組態檔
x = 10
我希望呼叫“foo”的結果為“2”,但它會列印“10”,即組態檔的默認值。如何確保對“main.py”中的“config.py”所做的更改持續到其他模塊?
任何幫助將不勝感激!
uj5u.com熱心網友回復:
為什么不使用 JSON 或 csv 或任何其他格式來存盤值?
編輯:我建議以下解決方案:
主檔案
import folder.config as config
import folder.module as module
if __name__ == "__main__":
config.set_x(2)
module.foo()
初始化檔案
import os, sys; sys.path.append(os.path.dirname(os.path.realpath(__file__)))
模塊.py
import config
def foo(): print(f"Result from function: { str(config.get_x()) }")
組態檔
import json
def read_json():
with open("data.json") as f: d = json.load(f)
return d
def write_json(d):
with open('data.json', 'w') as f: json.dump(d, f)
try:
data = read_json()
except:
data = {}
write_json({})
def set_x(val):
data["x"] = val
write_json(data)
def get_x():
print(data)
return data["x"]
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/440048.html
