본문 바로가기
Python/점프 투 파이썬

[03] tab을 4개의 space로 바꾸기

by 가므자 2012. 4. 20.

[03] tab 4개의 space로 바꾸기

 

이 스크립트는 한 문서파일을 읽어서 그 문서파일 내에 있는 (Tab)을 공백 네 개(4 Space)로 바꾸어 주는 스크립트이다.

 

필자는 대부분의 파이썬 스크립트를 리눅스의 VI 에디터를 이용하여 작성하는데 들여쓰기를 항상 탭으로 한다. 그런데 이 소스파일을 문서화시킬 때 탭 사이즈가 8이어서 읽기에 좀 불편했었다. 그런 이유로 이런 스크립트를 만들어 보았다.

 

#tabto4.py

 

import re

import sys

 

def usage():

    print "Usage: python %s filename" % sys.argv[0]

 

try: f = open(sys.argv[1])

except: usage(); sys.exit(2) #이렇게 두라인에 걸쳐 작성할 수도 있지만 한 라인에 작성하려 할 경우에 아래와 같이 ";" 세미콜론을 이용하시면 됩니다.

 

msg = f.read()

f.close()

p = re.compile(r'\t')

changed = p.sub(" "*4, msg)

 

f = open(sys.argv[1], 'w')

f.write(changed)

f.close()


위 스크립트에서 주목해서 볼 점은 re 모듈로 어떻게 탭을 네 개의 공백으로 바꾸었는가 이다. 우선 p = re.compile(r'\t')로 패턴을 만들었다. 여기서 r'\t'의 의미는 \t탭문자 그대로를 뜻한다. 여기서 r raw를 말한다. 이것은 이렇게 해도 무방하다.

 

p = re.compile('\\t')


그리고 만들어진 패턴 p의 함수인 sub를 이용해 패턴과 매칭되는 부분을 " "*4 , 공백 네 개로 바꾸었다. sub은 패턴과 매치되는 부분을 원하는 문자열로 바꾸어 주는 기능을 가지고 있다.

 

p.sub(" "*4, msg)

 

tabto4.py 파일이 C:\work라는 디렉토리에 있다고 가정하고 실행방법을 말씀드리겠습니다. c:\> cd c:\work c:\work> c:\python25\python tabto4.py "변경할 파일명" 위와 같이 실행하시면 실행이 될것입니다.

출처 : wikidocs 점프 투 파이썬

댓글