所以基本上,我对 Python 有点陌生。我创建了一个服务器,让它运行良好,文件和所有内容都显示出来。
但问题是,每次我尝试在 Python 中打开文件进行读/写时,我的终端都会抛出“拒绝访问”错误。
你知道,这是一个基本的服务器:
#!/usr/bin/env python
import BaseHTTPServer
import CGIHTTPServer
import cgitb
cgitb.enable();
server = BaseHTTPServer.HTTPServer;
handler = CGIHTTPServer.CGIHTTPRequestHandler;
address = ("",80);
handler.cgi_directories = ["/home"];
httpd = server(address,handler);
print("Working . . . ");
httpd.serve_forever();
没什么太花哨的。所以我启动服务器,然后当用户导航到页面时,“/home/file.py”包含以下代码:
#!/usr/bin/env python
f = open("asdf.txt","w");
什么都没有发生,当我检查运行服务器的终端时,它说,
localhost - - [27/Aug/2012 17:58:18] "GET /home/file.py HTTP/1.1" 200 -
Traceback (most recent call last):
File "/home/SERVER/home/file.py", line 4, in <module>
f = open("asdf.txt","w");
IOError: [Errno 13] Permission denied: 'asdf.txt'
我已经查找了一段时间,但我还没有找到解决方案。这可能是一个非常简单的解决方案,可以让专业的 Python 用户大开眼界,但要考虑到所有自学成才的程序员都必须从某个地方开始。对我来说,我现在有点落后,至少在 Python 方面。
我尝试了一些我从互联网上找到的解决方案(以及“可能已经有你答案的问题”),比如导入“os”并使用它来指定创建文件的确切位置。我尝试在 SERVER 文件夹和包含 Python 脚本的文件夹上使用“sudo chmod g+w”。但是这些互联网解决方案都没有帮助我。
我也会记得接受答案。
我试图使问题尽可能准确。所以如果你还有什么需要知道的,我可以更新一下。
由于这是一个“权限被拒绝”错误,我怀疑这是 Python 的错,并且可能是我没有在某处设置的一些权限。但我不知道他们会在哪里或在哪里。