yhl3692319 发表于 2014-06-09 12:35

python自动检测添加空格问题

问题是这样的,想编个脚本,能自动检测if{}里面语句是否有空两格,有的话不修改,没有就添加空格(例子如下):
...
IF
{
IGJLL #有空两格
KDKL #有空两格
}
...
IF
{
IGJLL #没有空两格,需要添加空格
KDKL #没有空两格,需要添加空格
}
执行结果:
...
IF
{
IGJLL
KDKL
}
...
IF
{
IGJLL #执行代码之后,空了两格
KDKL
}

初学菜鸟求助大神

q1208c 发表于 2014-06-09 16:51

:em14::em14:sed-e '/{/,/}/s/^[ ]*//' -e 's/^\([{}]\)/\1/' file3

icymirror 发表于 2014-06-09 17:40

回复 1# yhl3692319
有个问题,你的情况中会不会出现{}不匹配、或者if{if{...}}之类的情况?

yhl3692319 发表于 2014-06-10 09:40

是要考虑到的,表示情况很复杂啊回复 3# icymirror


   

icymirror 发表于 2014-06-10 17:15

回复 4# yhl3692319
你可能需要写一个可以被自己递归调用的函数了,函数头可能是像这个样子。

def CheckAndModifyIndent(content, indent=2)
然后,每当出现空白+IF的单行,就对自己递归调用,把Indent2个2个加上去,直到遇到"}"返回当前级别的调用。
同时,在代码里面对于每行按照indent进行行首空白个数检测(可以考虑正则表达式或者基本字符串方式)。
页: [1]
查看完整版本: python自动检测添加空格问题