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

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

Python 腳本在找不到文件時中止

Python 腳本在找不到文件時中止

紅顏莎娜 2022-09-06 21:15:42
我是一名網絡工程師,嘗試手動編寫Cisco Event Manager Applet腳本是一件非常麻煩的事情,所以我拼湊了一個腳本來嘗試使其更容易/自動化。計劃原因:當您使用該程序時,它會將您的腳本輸出到終端并創建一個文件供您記錄。我創建了一個初始提示,詢問您以前是否使用過此程序,以便它將在開始之前完全刪除該文件。這樣做的原因是消除數據混淆的任何機會,并可能導致您嘗試進行的配置更改出現問題。問題:如果用戶對初始提示說“是”,詢問他們以前是否使用過該程序,并且Python找不到該文件,則會出錯。所需協助:我想嘗試讓程序在找不到文件時繼續,而不是中止。(如果有人有任何建議,任何關于清理的建議也會有所幫助)
查看完整描述

3 回答

?
梵蒂岡之花

TA貢獻1900條經驗 獲得超5個贊

我知道,如果您的文件不存在并且用戶鍵入“y”,則會出現此問題。在這種情況下,您的函數應如下所示:


# Searches for any previously made EMA script file and removes it. Currently errors out if file isn't seen #

while beg == 0:


    remove = input("Have you used this program before?\n[Y] Yes\n[N] No\n: ").lower()


    if remove == "y":

        # This line will check if the file exists, if it does it will be deleted

        if os.path.exists("EMA_Script.txt"):

            os.remove("EMA_Script.txt")

            print("File Deleted")

        beg += 1


    elif remove == "n":

        beg += 1


    else:

        print("Incorrect input.")

        beg += 0

如您所見,我添加了此功能,這將幫助您了解該文件是否存在,如果存在,請將其刪除。如果該文件不存在,它將簡單地繼續下一條指令,從而從循環中分離出來。os.path.exists("EMA_Script.txt")beg += 1


讓我知道這是否適合您!


查看完整回答
反對 回復 2022-09-06
?
一只甜甜圈

TA貢獻1836條經驗 獲得超5個贊

的默認行為是在文件不存在時引發異常。如果要執行其他操作,則需要捕獲異常:open


try:

    f = open("EMA_Script.txt", "a+")

except FileNotFoundError:

    # your code to handle the case when the file doesn't exist (maybe open with write mode)

雖然我們在這里,但在處理文件時使用上下文是一種很好的做法,以確保它們始終處于關閉狀態 - 事實上,任何需要關閉的東西(如數據庫連接)都應該以這種方式完成。原因是上下文將確保文件已關閉,即使 介于 和 之間的某些內容引發異常也是如此。openclose


因此,與其說是這種模式:


f = open(...)

# do things with file

f.close()

您要執行以下操作:


with open(...) as f:

    # do things with file


查看完整回答
反對 回復 2022-09-06
?
www說

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

您可以使用 try/except 塊來捕獲 .此外,使用代替變量將清理代碼:FileNotFoundErrorbreakbeg


import os


while True:

    remove = input("Have you used this program before?\n[Y] Yes\n[N] No\n: ").lower()

    if remove == "y":

        try:

            os.remove("EMA_Script.txt")

            print("File Deleted")

        except FileNotFoundError:

            pass

        break

    elif remove == "n":

        break

    else:

        print("Incorrect input.")

第二個(嵌套)循環也是如此:如果輸入正確,則中斷循環,否則繼續循環。


查看完整回答
反對 回復 2022-09-06
  • 3 回答
  • 0 關注
  • 147 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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