递归生成器:对于不知道输入文件的嵌套层数时,可以使用递归生成器来循环迭代(当nested是字符串时,可以通过将nested与一个字符串拼接,看看会不会出现TypeError来判断是否是字符串)
def flatten(nested):
try: # 不要迭代类似字符串的对象
try: nested + '' # 通过与字符串拼接判断是否是字符串
except TypeError: pass
else: raise TypeError
for sublist in nested:
for element in flatten(sublist):
yield element
except TypeError:
yield nested