Python无法列出我的目录
我在我的Bottle应用里有一段代码,用来列出一个满是文件的目录:
[Post(name[:-3]) for name in os.listdir("posts")]
在我本地电脑上,这段代码运行得很好。但是在我的服务器上,我总是遇到这个错误:
OSError: [Errno 2] No such file or directory: 'posts'
os.listdir('.')
和$ ls
都显示这个目录是存在的。os.getcwd()
显示我在父目录里,应该能访问到这个目录。可是glob.glob("posts/*.md")
什么都没返回,所以我觉得问题不在listdir
上。通过ssh运行python
并尝试同样的代码是成功的(也就是说,我得到了一个Post
对象的列表)。
我是不是漏掉了什么?
编辑
感谢大家的建议。问题的根源是WSGI配置错误。后来我用正确的配置参数重新挂载了应用,现在一切正常。
1 个回答
0
首先想到的是权限问题——确保你的权限设置正确,让应用程序至少有读取的权限。即使无法读取,listdir
仍然会显示某个东西存在。
接下来要考虑的是,这看起来像是一个相对路径——你确定这个相对路径是正确的吗?我知道你是通过 listdir('.')
找到了这个目录(所以应该没问题),但是如果你直接写出目录的完整路径会怎么样呢?很多时候,“应该没问题”的情况其实会出问题。