Python脚本不理解目录和文件之间的区别

Python脚本不理解目录和文件之间的区别,python,Python,大家好,可以帮忙的人! 下面的Python脚本给出了以下错误 File "/var/www/lighttpd/example.com/CloudMining/cloudmining/lib/dirmap.py", line 104, in __getattr__ return self._read(name) File "/var/www/lighttpd/example.com/CloudMining/cloudmining/lib/dirmap.py", line 81, in _r

大家好,可以帮忙的人! 下面的Python脚本给出了以下错误

File "/var/www/lighttpd/example.com/CloudMining/cloudmining/lib/dirmap.py", line 104, in __getattr__
    return self._read(name)
File "/var/www/lighttpd/example.com/CloudMining/cloudmining/lib/dirmap.py", line 81, in _read
    raise AttributeError('No file named ' + name)
AttributeError: No file named public
问题是,与此脚本相关的配置将PUBLIC定义为目录,而不是文件

pub_dir = os.path.join(path, './public')
if os.path.exists(pub_dir):
    self.set_public_dir(pub_dir)
但下面的脚本将PUBLIC作为文件读取,并给出了错误。 脚本的所有其他问题都正常,它理解结构,它以如下格式打开文件

app.add_stylesheets('/public/custom.css')
因此,所有相关路径都在工作。 但下面的代码包含将./public目录作为文件而不是目录读取的错误

如果有任何提示,我将不得不尝试纠正错误-我甚至找不到错误所在

“有问题”的线路(根据调试)为98-104(约)

和65-81(大约)-所有这些行中的大多数都会调用错误

def _read(self, name, reader=None):
    kind, path = self._lookup(name)
    if kind == 'dir':
        if path not in self._sub_dirs:
            self._sub_dirs[path] = DirectoryMapper(path,
                cache=self._cache is not None, readers=self._readers)
        return self._sub_dirs[path]
    elif kind == 'file':
        if not reader:
            ext = os.path.splitext(path)[-1]
            if ext in self._readers:
                reader = self._readers[ext]
            else:
                reader = self._readers.get('*', file_reader)
        return reader(path, **reader.func_dict.get('keywords', {}))
    else:
        raise AttributeError('No file named ' + name)
完整的脚本可用

问题是,与此脚本相关的配置将PUBLIC定义为目录,而不是文件

pub_dir = os.path.join(path, './public')
if os.path.exists(pub_dir):
    self.set_public_dir(pub_dir)
但下面的脚本将PUBLIC作为文件读取,并给出了错误

嗯,如果kind不是file,也不是dir,那么代码会给出属性错误

所以我想有一个不同的问题

你确定这是正确的观点吗


以及样式表/公共/自定义。。。。。这不是一个答案,而是另一个问题。如果你想发布一个问题,你可能应该发表评论并提问。@drmariod-一切都在正确的位置,相信我…相同的脚本打开并处理配置文件-只是因为有对文件的精确引用,如./config/sphinx.conf或(如上)app.add_样式表('/public/custom.css')。因此,它阅读和理解结构,肯定!但是,当我们谈到它应用于“./public”时,它说“AttributeError:没有名为public的文件”public是目录,为什么上面的脚本将其作为文件读取?这就是问题所在@DuhProgrammer13,我不允许发表评论,所以写一个答案是唯一的可能。。。我想知道为什么它会引发AttributeError,所以它必须是与“dir”和“file”不同的类型。所以,也许我不理解您的'kind'变量,以及为什么您会想“为什么上面的脚本将其作为文件读取-这就是问题所在!”。对我来说,它看起来像是“善良”的文件。。。但好吧,也许我错了。