Python无法列出我的目录

2 投票
1 回答
2599 浏览
提问于 2025-04-17 00:24

我在我的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('.') 找到了这个目录(所以应该没问题),但是如果你直接写出目录的完整路径会怎么样呢?很多时候,“应该没问题”的情况其实会出问题。

撰写回答