[英]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.exists
或os.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.