如何使用Python讀取文字檔案並回答問題?

華科雲商小雪發表於2024-02-21

要使用Python讀取文字檔案並回答問題,您可以按照以下步驟進行:開啟文字檔案—讀取檔案內容—解析檔案內容以回答問題—根據問題提取所需資訊並給出答案。其實大體上使用Python讀取文字檔案並回答問題也就這幾個步驟,前期部署也是很重要得,但是如果遇到下面這樣得問題,其實也很好解決。

1、問題背景:

使用者想使用 Python 讀取一個文字檔案 animallog1.txt ,並使用檔案中的資訊來回答問題。但是,使用者在嘗試讀取檔案時遇到了一個錯誤: "FileNotFoundError: [Errno 2] No such file or directory: 'animallog1.txt'"。

2、解決方案:

為了解決這個問題,我們需要檢查以下幾點:

  1. 確保檔案 animallog1.txt 確實存在於您指定的目錄中。

  2. 確保您在程式碼中使用了正確的路徑來開啟檔案。如果檔案不在當前目錄中,您需要提供完整的路徑。

  3. 確保您正在使用正確的模式來開啟檔案。在您的程式碼中,您使用了 'r' 模式,這表示以只讀模式開啟檔案。如果檔案不存在,該模式將引發 FileNotFoundError 異常。

以下是一些可能的解決方法:

  1. 檢查您是否在正確的目錄中執行指令碼。如果您不確定,可以使用 os.getcwd() 函式來獲取當前目錄的路徑。

  2. 檢查您是否使用了正確的路徑來開啟檔案。如果檔案不在當前目錄中,您需要提供完整的路徑。例如,您可以使用 os.path.join() 函式來拼接檔案路徑。

  3. 檢查您是否正在使用正確的模式來開啟檔案。在您的程式碼中,您使用了 'r' 模式,這表示以只讀模式開啟檔案。如果檔案不存在,該模式將引發 FileNotFoundError 異常。您可以改為使用 'w' 模式來建立檔案,或者使用 'a' 模式來向現有檔案追加內容。

以下是一個修改後的程式碼示例:


import 
os


# 檢查檔案是否存在
if os. path. isfile( 'animallog1.txt'):
    # 開啟檔案
    with open( 'animallog1.txt', 'r') as myfile:
        # 讀取檔案內容
        lines = myfile. readlines()

    # 處理檔案內容
    animal_names, dates, locations = [], [], []
    for line in lines:
        animal_name, date, location = line. strip(). split( ':')
        animal_names. append( animal_name)
        dates. append( date)
        locations. append( location)

    # 列印結果
    print( animal_names)
    print( dates)
    print( locations)
else:
    # 如果檔案不存在,則建立檔案
    with open( 'animallog1.txt', 'w') as myfile:
        myfile. write( "Animal Name: Dog\nDate: 2023-01-01\nLocation: Park\n")
        myfile. write( "Animal Name: Cat\nDate: 2023-02-02\nLocation: Home\n")
        myfile. write( "Animal Name: Bird\nDate: 2023-03-03\nLocation: Forest\n")

    # 再次開啟檔案並讀取內容
    with open( 'animallog1.txt', 'r') as myfile:
        lines = myfile. readlines()

    # 處理檔案內容
    animal_names, dates, locations = [], [], []
    for line in lines:
        animal_name, date, location = line. strip(). split( ':')
        animal_names. append( animal_name)
        dates. append( date)
        locations. append( location)

    # 列印結果
    print( animal_names)
    print( dates)
    print( locations)

在修改後的程式碼中,我們首先檢查檔案 animallog1.txt 是否存在。如果檔案不存在,則建立檔案並寫入一些初始資料。然後,我們再次開啟檔案並讀取內容,將內容儲存在列表中,並列印結果。

注意:在實際使用時,您需要將 animallog1.txt 檔案替換為您的實際檔案路徑。

上面這個示例中, read_file_and_answer_question() 函式負責開啟檔案、讀取內容並呼叫 parse_content_and_answer_question() 函式來解析內容並回答問題。 parse_content_and_answer_question() 函式中,我們簡單地檢查問題是否存在於檔案內容中,並返回相應的答案。請確保將 file_path 變數替換為您實際的文字檔案路徑。所以說想要學會並不是一件簡單得事情,如果各位遇到任何問題都可以評論區留言。


來自 “ ITPUB部落格 ” ,連結:https://blog.itpub.net/70034537/viewspace-3006920/,如需轉載,請註明出處,否則將追究法律責任。

相關文章