文字列のインデントの変更 〜Python Cook Book〜
複数の行から成る文字列の行頭のスペースを加減して、インデントをそろえた文字列を作るには、
def reindent(s,numSpace): spaces = numSpace * ' ' lines = [spaces + line.strip() for line in s.splitlines()] return '\n'.join(lines)
こうすればよい。
相対的なインデントを変えず左端からの距離を変えたいときは、
def numSpaces(s): return [len(line)-len(line.lstrip()) for line in s.splitlines()] def delSpaces(s,numDel): if numDel > min(numSpaces(s)): raise ValueError,'removing more spaces than there are!' return '\n'.join([line[numDel:] for line in s.splitlines() ]) def unIndentBlock(s): return delSpaces(s,min(numSpaces(s))) >>>x = ''' line one line two line three''' >>>print unIndentBlock(x) line one line two line three
こうする。