我希望有一个函数,它接收文件的路径,检查文件是否以\n
结尾,如果没有,则添加\n
。
我知道我可以通过打开文件两次,一次处于读取模式,然后再次处于追加模式,但我觉得我必须遗漏某些东西......我感觉像'w+'
模式,例如,必须能够做到。
这是一种方法,这样做两次打开文件(我想要一些更简单的地方你只打开它一次)。
def ensureFileEndsWith(path, end):
with open(path) as f:
f.seek(-1, 2)
alreadyGood = f.read(1) == end
if not alreadyGood:
with open(path, 'a') as f:
f.write(end)
我想做同样的事情,但只打开一次文件。我试过这个:
def ensureFileEndsWith(path, end):
with open(path, 'w+') as f:
f.seek(-1, 2)
if not f.read(1) == end:
f.write(end)
但是它打印出了这个例外:
IOError: [Errno 22] Invalid argument
关于我在以seek
模式打开的文件中使用'w+'
。