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