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()

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()

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()

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
添加回答
舉報