使用 os.scandir() 导致在 pycharm 中出现“未解析的属性引用”警告

问题描述 投票:0回答:2

我在pycharm中有以下python代码:

# search for files or folders with two or more adjacent spaces
def twoplusspaces(path):

    srchr = os.scandir(path) # get our iterator

    # iterate through folders and files looking for adjacent blank spaces
    for entry in srchr:
        if "  " in entry.name:
            print(entry.name) # print name of file/folder with 2+ spaces
        if entry.is_dir():
            twoplusspaces(path + "\\" + entry.name) # recursive call when folder encountered

    srchr.close() # done using iterator

这按预期工作正常,但 pycharm 警告我 entry.name 和 entry.is_dir() 的“未解析的属性引用”。我觉得这很奇怪,因为 Python 文档说 scandir() 返回的 DirEntry 对象存在这些属性:https://docs.python.org/3/library/os.html#os.DirEntry

看起来我的 pycharm 可能有问题,但不确定...感谢您对此事的任何帮助或详细说明,谢谢!

python pycharm scandir
2个回答
2
投票

看起来这是 pycharm 的一个错误。暂时忽略。谢谢史蒂夫!


0
投票

解决这个问题的方法(虽然不是修复它)是添加

assert isinstance(entry, os.DirEntry)

在 for 循环之后。这样 IDE 就知道您将按原样使用它。

© www.soinside.com 2019 - 2024. All rights reserved.