3 回答

TA貢獻(xiàn)1860條經(jīng)驗(yàn) 獲得超9個(gè)贊
如果您的文件不需要可移植,最簡單的解決方案是使用 python?pickling。缺點(diǎn)是您無法手動(dòng)檢查文件或出于調(diào)試目的修改文件,而不是基于文本的保存(例如 ini 文件、json 或簡單的 txt)。主要優(yōu)點(diǎn)是易于使用,因?yàn)槟梢酝ㄟ^這種方式序列化任何 python 基本類型。
這是一個(gè)關(guān)于如何使用它的簡單示例:
import pickle
def get_status():
? ? with open('status','rb') as f:
? ? ? ? status = pickle.load(f)
? ? ? ? return status
? ? ? ??
def set_status(status:bool):
? ? with open('status','wb') as f:
? ? ? ? pickle.dump(status,f)
set_status(True)
s = get_status()
assert s
set_status(False)
s = get_status()
assert not s

TA貢獻(xiàn)1777條經(jīng)驗(yàn) 獲得超3個(gè)贊
您可以創(chuàng)建一個(gè)文件history.txt,然后在啟動(dòng)時(shí)打開它,并讀取最后的狀態(tài),如果不同,則覆蓋文件中的該狀態(tài)并保存。

TA貢獻(xiàn)1817條經(jīng)驗(yàn) 獲得超14個(gè)贊
根據(jù)您在評(píng)論中所寫的內(nèi)容,我會(huì)將其更改為:
import json
ping_data = dict()
with open('C:\ping_data.json') as file:
data = json.load(file)
def ping_host(address):
status = ping_url(address.address)
if data['address.status'] != status:
ping_data['address.status'] = status
send_message(("! " if status is None else "+ " if status else "- ") + address.comment)
ping_host(youraddress)
with open('C:\ping_data.json', 'w') as file:
json.dump(ping_data, file, indent=2)
我這樣做的方法是使用 json 庫
import json
接下來我會(huì)在你的腳本中創(chuàng)建一個(gè)字典
saved_data = dict()
然后每當(dāng)我收到更新時(shí)我都會(huì)將值存儲(chǔ)在字典中
saved_data['info'] = updated_info
和出口?它到一個(gè)json文件
with open('saved_data.json', 'w') as file:
json.dump(saved_data, file, indent=2)
現(xiàn)在,每當(dāng)我打開程序時(shí),它都會(huì)像這樣讀取該文件
with open('saved_data.json') as file:
data = json.load(file)
然后我將以字典的形式訪問變量數(shù)據(jù)
for k in data:
for info in data[k]:
if info != updated_info
saved_data['info'] = updated_info
添加回答
舉報(bào)