我在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 可能有问题,但不确定...感谢您对此事的任何帮助或详细说明,谢谢!
看起来这是 pycharm 的一个错误。暂时忽略。谢谢史蒂夫!
解决这个问题的方法(虽然不是修复它)是添加
assert isinstance(entry, os.DirEntry)
在 for 循环之后。这样 IDE 就知道您将按原样使用它。