Python无法覆盖文件
我正在从一个文件中读取内容,然后往里面添加一行,最后再把它保存回去。在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)
我遇到的错误是 IOError: [Errno 13] Permission denied
,出现在第13行。
我是在Apache中以.wsgi文件的形式运行这个文件,并且文件所在的文件夹权限是775。
2 个回答
0
你没有关闭
文件。你应该用with
语句来打开文件,这样可以自动处理文件的关闭。而且,直接以追加模式打开文件会更简单、更高效,省得你先读取整个文件再写回去:
path = "blogs/%s.comment" % blogtitle
with open(path, 'a') as f:
f.write(comment)
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)