我正在读取文件,为其添加一行,然后将其保存回来。 在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个权限。
答案 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)