// 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'
我相信我会犯一个小错误,但我不知道,只是开始编程。
提前感谢你
答案 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)
这样,您不会意外地抑制错误。