亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

Python輸出布爾變量到文件(讀、檢查、寫)

Python輸出布爾變量到文件(讀、檢查、寫)

汪汪一只貓 2024-01-16 10:21:57
我是Python新手。告訴我如何實現將變量的值保存到文件中,以便在程序重新啟動時不會收到不必要的通知。該程序會對服務器執行 ping 操作,并在狀態發生變化時發送一條消息。當您重新啟動程序時,它不會保存其檢查的歷史記錄。這是非常不舒服的。我希望我正確地解釋了這個問題?我需要不斷地將檢查結果保存到文件中,并在比較新檢查時使用這些數據。def ping_host(address):    status = ping_url(address.address)    if status != address.status:        send_message(( "! " if status is None else "+ " if status else                      "- ") + address.comment)        address.status = status該函數檢查狀態,如果狀態發生變化,則發送新消息。
查看完整描述

3 回答

?
慕碼人2483693

TA貢獻1860條經驗 獲得超9個贊

如果您的文件不需要可移植,最簡單的解決方案是使用 python?pickling。缺點是您無法手動檢查文件或出于調試目的修改文件,而不是基于文本的保存(例如 ini 文件、json 或簡單的 txt)。主要優點是易于使用,因為您可以通過這種方式序列化任何 python 基本類型。

這是一個關于如何使用它的簡單示例:

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


查看完整回答
反對 回復 2024-01-16
?
慕森王

TA貢獻1777條經驗 獲得超3個贊

您可以創建一個文件history.txt,然后在啟動時打開它,并讀取最后的狀態,如果不同,則覆蓋文件中的該狀態并保存。



查看完整回答
反對 回復 2024-01-16
?
大話西游666

TA貢獻1817條經驗 獲得超14個贊

根據您在評論中所寫的內容,我會將其更改為:


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

接下來我會在你的腳本中創建一個字典


saved_data = dict()

然后每當我收到更新時我都會將值存儲在字典中


saved_data['info'] = updated_info

和出口?它到一個json文件


with open('saved_data.json', 'w') as file:

    json.dump(saved_data, file, indent=2)

現在,每當我打開程序時,它都會像這樣讀取該文件


with open('saved_data.json') as file:

    data = json.load(file)

然后我將以字典的形式訪問變量數據


for k in data:

    for info in data[k]:

        if info != updated_info

            saved_data['info'] = updated_info


查看完整回答
反對 回復 2024-01-16
  • 3 回答
  • 0 關注
  • 170 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號