Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 检查下一行的前导空格是否比当前行多_Python_Python 3.x - Fatal编程技术网

Python 检查下一行的前导空格是否比当前行多

Python 检查下一行的前导空格是否比当前行多,python,python-3.x,Python,Python 3.x,我有一个这样结构的文本文件,我需要通读每一行 XXXX .... YYYY ZZZZ ZZZZ .... YYYY ZZZZ ZZZZ .... 。。。。指上述任意数量的对象 该文件被读入名为textList的列表中 行=枚举文本列表 对于i,行中的行: 读入XXXXs 如果行==YYYY 从该位置,获取行中的下一行 i、 e.i,线条=线条__ 直到下一行的金额相同或更低 比之前的空白量 具有YYYY的行 我尝试过几种不同的方法,但我不断得到无

我有一个这样结构的文本文件,我需要通读每一行

XXXX
....
YYYY
    ZZZZ
    ZZZZ
    ....
YYYY
    ZZZZ
    ZZZZ
    ....
。。。。指上述任意数量的对象

该文件被读入名为textList的列表中

行=枚举文本列表 对于i,行中的行: 读入XXXXs 如果行==YYYY 从该位置,获取行中的下一行 i、 e.i,线条=线条__ 直到下一行的金额相同或更低 比之前的空白量 具有YYYY的行 我尝试过几种不同的方法,但我不断得到无限循环。我知道这是可能的,但我一直没能弄明白

当前脚本:给定索引错误

def getIndentLevelline: tabCount=lenline-lenline.lstrip“” printtabCount 返回选项卡计数 textList=[XXXX, XXXX, XXXX, YYYY, ZZZZ, ZZZZ, YYYY, ZZZZ, ZZZZ] 行=枚举文本列表 对于i,行中的行: 如果行.lstrip'==YYYY: 找到打印YYYY cur=getIndentLeveltextList[i] 尽管如此: nxt=getIndentLeveltextList[i+1]
如果nxt此脚本解决了问题:

def getIndentLevelline: tabCount=lenline-lenline.lstrip“” 返回选项卡计数 textList=[XXXX, XXXX, XXXX, YYYY, ZZZZ, ZZZZ, YYYY, ZZZZ, ZZZZ, , , , XXXX, XXXX,] 行=枚举文本列表 对于i,行中的行: 如果行.lstrip'==YYYY: 找到打印YYYY cur=getIndentLeveltextList[i] nxt=getIndentLeveltextList[i+1] 尽管如此:
如果nxt我认为你不需要列举

for  i in range(len(textList)) :   
  numWhiteSpace = len(textList[i]) - len(textList[i].lstrip())
  if i == 0:
    continue
  else:
    if numWhiteSpace > (len(textList[i-1]) - len(textList[i-1].lstrip())):
      print(textList[i])

请发布您尝试过的代码,它让您陷入无限循环。@JosephSible Done您认为该循环将如何退出?我看到有一段时间是真的,里面没有休息或其他提前退出的方式。我是个白痴。谢谢听起来列表索引可能超出范围。