“AttributeError:'NoneType'对象没有属性'split'”

时间:2016-06-27 19:10:40

标签: python-2.7 split attributeerror nonetype

// in a class implementing ICollection<T>
public IEnumerator<T> GetEnumerator() => _collection.GetEnumerator();
IEnumerator IEnumerable.GetEnumerator() => ((IEnumerable) _collection).GetEnumerator();

当我运行我的程序时,上面使用的两种拆分方法都会出错。显示的错误是

第216行,在get_par中     Thepdata = ThePath.split('GeneralParameters',Path)[0] AttributeError:'NoneType'对象没有属性'split'

我相信我会犯一个小错误,但我不知道,只是开始编程。

提前感谢你

1 个答案:

答案 0 :(得分:0)

您的函数locate_dir会返回None。如果pattern永远不匹配路径,则会发生这种情况。由于您使用自己的打印功能myprinte,因此可能会抑制错误消息。

这假设您的locate_dir目前的格式如下。 根据您的评论格式化:

def locate_dir(pattern, r=os.curdir):
  ok = 0
  for path, dirs, files in os.walk(os.path.abspath(r)):
    if pattern in path:
      ok = 1
      return path
  if ok == 0:  # ok will always be 0 here, you would have left the loop otherwise
    myprinte("Warning in locate: No directory found!")
  # end of function *implicitly* returns None (i.e. returns "Nothing")

请注意,如果您的代码无法生成其他代码所需的结果,则应引发异常。

def locate_dir(pattern, r=os.curdir):
  for path, dirs, files in os.walk(os.path.abspath(r)):
    if pattern in path:
      return path
  raise FileNotFoundError("No file found for pattern %s" % pattern)

这样,您不会意外地抑制错误。