Python确保文件以行返回结束?

时间:2015-08-15 17:34:22

标签: python file

我希望有一个函数,它接收文件的路径,检查文件是否以\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+'

0 个答案:

没有答案