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

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

如何根據另一個函數的成功或失敗來執行一個函數?

如何根據另一個函數的成功或失敗來執行一個函數?

料青山看我應如是 2023-02-22 10:50:00
我有一個主要功能,它從用戶輸入中搜索帶有 2 個關鍵字的 txt 文件,如果找到它,它將打印 txt 文件中的行。我想編寫另一個函數(send_email),如果主函數在文件中找不到匹配的任何內容,它就會執行,我們將不勝感激。def main_function():  with open("file.txt", "r") as f:    for line in f.readlines():      if line.startswith(area) and name in line:        print("\n" + "\n" + "SPP Location:" + "\n" + line + "\n")main_function()def send_email():  blah blah blahif main_function is False:   send_email
查看完整描述

4 回答

?
一只萌萌小番薯

TA貢獻1795條經驗 獲得超7個贊

你可以通過設置一個標志來做到這一點。如果您遍歷文件但沒有找到匹配項,則標志保持為假。


def main_function():

  with open("file.txt", "r") as f:

    find_flag = False

    for line in f.readlines():

      if line.startswith(area) and name in line:

        print("\n" + "\n" + "SPP Location:" + "\n" + line + "\n")

        find_flag = True

    if not find_flag:

        send_email()


查看完整回答
反對 回復 2023-02-22
?
寶慕林4294392

TA貢獻2021條經驗 獲得超8個贊

干得好。無需單獨調用 main_function。當您評估條件“not main_function()”時,它將被調用。


def main_function():

    with open("file.txt", "r") as f:

        for line in f.readlines():

            if line.startswith(area) and name in line:

                print("\n" + "\n" + "SPP Location:" + "\n" + line + "\n")

                return True

    return False


def send_email():

    blah blah blah



if not main_function():

    send_email()


查看完整回答
反對 回復 2023-02-22
?
莫回無

TA貢獻1865條經驗 獲得超7個贊

您可以將匹配成功保存在一個變量中,如果變量沒有因匹配而改變,則調用該函數:


def main_function():

    with open("file.txt", "r") as f:

        results = 0

        for line in f.readlines():

            if line.startswith(area) and name in line:

                print("\n" + "\n" + "SPP Location:" + "\n" + line + "\n")

                results = 1

        if results == 0:

            send_email()


查看完整回答
反對 回復 2023-02-22
?
www說

TA貢獻1775條經驗 獲得超8個贊

下面的腳本怎么樣:


try:

    main_function

except:

    send_email

這樣,如果 main_function 函數拋出錯誤,python 將捕獲它,并調用 send_email 函數。


或者,如果您不希望 main_function 因拋出錯誤而失敗,您可以執行以下操作:


def main_function():

  

  success = False

  

  with open("file.txt", "r") as f:

    for line in f.readlines():

      if line.startswith(area) and name in line:

        print("\n" + "\n" + "SPP Location:" + "\n" + line + "\n")

        

        success = True

  

  return success


def send_email():

  blah blah blah


main_function_success = main_function()


if not main_function_success:

   send_email


查看完整回答
反對 回復 2023-02-22
  • 4 回答
  • 0 關注
  • 153 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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