IOError: [Errno 13] Permission denied

12

我有一段代码用于创建一个.json文件来存储Python数据。当我在服务器上运行它时,我收到了以下错误:

IOError: [Errno 13] Permission denied: 'juliodantas2015.json' at line with open(output_file, 'wb') as fp:

Python代码:

fich_input='juliodantas2015.txt'
output_file= fich_input.strip('.txt')+'.json'
import json
with open(output_file, 'wb') as fp:
    json.dump('yes', fp)
在命令行中我输入了chmod 777 *.py,但仍然无法工作。我该如何解决?

2
它抱怨的不是.py文件,而是你的json文件。 - cdarke
4个回答

12

我曾遇到类似的问题。我试图让每次用户访问网站时都写入一个文件,但出现了两个问题:

1:权限设置不正确

2:我尝试使用
f = open(r"newfile.txt","w+")(错误)

将文件更改为 777(所有用户均可读/写)
chmod 777 /var/www/path/to/file
并将路径更改为绝对路径后,我的问题得到解决
f = open(r"/var/www/path/to/file/newfile.txt","w+")(正确)


6
IOError: [Errno 13] Permission denied: 'juliodantas2015.json'

告诉你所有需要知道的事情:虽然您已经使用chmod成功将Python程序设置为可执行文件,但Python不能打开那个juliodantas2015.json文件进行编写。您可能没有在当前文件夹中创建新文件的权限。


2
谢谢,现在我明白了。在那个文件夹中进行了chmod 777操作,现在它正在工作。 - João Pedro
2
这有点危险,因为现在每个人都可以对那个文件夹做任何想做的事情。我建议阅读chmod的手册页面,以及一些关于Unix文件权限的内容! - Marcus Müller
在这种情况下,您会如何定义权限? - João Pedro
@spenf10 指定“这个”? - Marcus Müller
假设执行Python程序的用户与JSON文件的所有者相同,则唯一需要访问权限的用户是所有者,即600完全足够。 - Marcus Müller
显示剩余3条评论

0

我有一个非常愚蠢的用例,解释了为什么我会得到这个错误。最初我是通过打印我的数据 > file.txt 来输出。

然后我改变了主意,决定使用 open("file.txt", "w")。但当我调用 Python 时,我忘记删除 > file.txt ......


0
今天早上我遇到了同样的问题,当我尝试向打开的Excel文件写入数据时,注意到当文件处于打开状态时无法编辑。请关闭文件,然后它就可以正常工作了。

目前你的回答不够清晰,请编辑并添加更多细节,以帮助其他人理解它如何回答问题。你可以在帮助中心找到有关如何编写好答案的更多信息。 - Community
这并没有真正回答问题。如果您有不同的问题,可以通过单击“提问”来提出。如果您想在此问题获得新的答案时得到通知,可以关注此问题。一旦您拥有足够的声望,您也可以添加悬赏以吸引更多关注。- 来自审核 - jonathan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接