簡體   English   中英

讀取 python 上空文件的最后一行

[英]Reading the last line of an empty file on python

我的代碼中有這個 function,它應該在最后一行讀取文件,如果沒有文件,則創建一個。 我的問題是當它創建文件並嘗試讀取最后一行時出現錯誤。

with open(HIGH_SCORES_FILE_PATH, "w+") as file:
        last_line = file.readlines()[-1]
        if last_line == '\n':
            with open(HIGH_SCORES_FILE_PATH, 'a') as file:
                file.write('Jogo:')
                file.write('\n')
                file.write(str(0))
                file.write('\n') 

我嘗試了多種閱讀最后一行的方法,但我嘗試過的所有方法都以錯誤告終。

在“w+”中打開文件會刪除文件中的所有內容。 readlines()返回一個空列表並嘗試獲取值導致IndexError 您可以使用os.path.existsos.path.isfile測試文件是否存在,或者您可以使用異常處理程序來處理這種情況。

last_line開始設置為標記值。 如果打開失敗,或者沒有讀取任何行,則不會更新last_line ,您可以基於它創建文件。

last_line = None
try:
    with open(HIGH_SCORES_FILE_PATH) as file:
        for last_line in file:
            pass 
except OSError:
    pass

if last_line is None:
    with open(HIGH_SCORES_FILE_PATH, "w") as file:
        file.write('Jogo:\n0\n')
    last_line = '0\n'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM