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

2022-05-21 07:18:27 发布

您现在位置: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 _read
    raise AttributeError('No file named ' + name)
AttributeError: No file named public

问题是与这个脚本相关的config将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(大约)

def __getattr__(self, name):
    if self._cache is not None:
        if name not in self._cache:
            self._cache[name] = self._read(name)
        return self._cache[name]
    else:
        return self._read(name)

和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)

完整脚本可用here


Tags: pathnameinself脚本cachereadreturnif错误dirnotpublicreaderfile
1条回答
网友
1楼 ·

The problem is that relating config to this script defines PUBLIC as a directory, not a file !

But script below read PUBLIC as a file - and gives the error.

嗯,如果kind不是file也不是dir,你的代码会给出属性错误。。。你知道吗

所以我想有一个不同的问题。。。你知道吗

你确定这是正确的观点吗?你知道吗

以及样式表/公共/自定义。。。。。它是根吗?你知道吗