Python无法覆盖文件

时间:2014-04-12 10:58:55

标签: python file

我正在读取文件,为其添加一行,然后将其保存回来。 在C#中,这可行 - 但不是在Python中。谁能告诉我为什么?

f = "blogs/%s.comment" % blogtitle
if os.path.isfile(f):
    temp = file(f).readlines()
    temp.append(comment)

    overr = open(f, "w") #line 13
    for l in temp: overr.write(l)

我得到的错误是第13行的IOError: [Errno 13] Permission denied

我在Apache中以.wsgi身份运行此文件,并在存储文件的文件夹中拥有775个权限。

2 个答案:

答案 0 :(得分:1)

第一次打开文件后忘记关闭文件,按以下步骤操作:

f = "blogs/%s.comment" % blogtitle
if os.path.isfile(f):
    with open(f, 'r') as fl:
        temp = fl.readlines()
        temp.append(comment)

    with open(f, "w") as fl:
        for l in temp: fl.write(l)

答案 1 :(得分:0)

您没有close该文件。您应该在with语句中打开该文件以处理结束。此外,以附加模式打开文件而不是阅读整个文件并将其写回来更简单,更高效:

path = "blogs/%s.comment" % blogtitle
with open(path, 'a') as f:
    f.write(comment)