노무현전 대통령 서거 - 삼가 고인의 명복을 빕니다

널위한약속

어쩜 우리는 사랑이라고 말하면서 자신의 욕심만을 채우려고 하는지도 모르겠습니다.
  Profile K/E : Mentor : Schedule : Lab : LOVE : Tags : GuestBook : Admin : Write

'치환'에 해당되는 글 1건

  • 2008/01/31 python으로 파일 안의 문자열 치환하기.

python으로 파일 안의 문자열 치환하기.

Work & Jobs/Tip&Tech 2008/01/31 19:55
'현 디렉토리 밑에 모든 파일에서 특정 문자열을 발견하면 그 문자열 밑에 특정 줄을 추가하라' 라는 조건을 충족시키기 위해서 Perl 과 awk, sed 등 여러가지 스크립트 언어들을 갖고 고민하던 중 다즐링 형님의 도움을 얻어서 Python을 이용하여 처리할 수 있었습니다.

Python을 처음 다루다보니 몇가지 구문의 실수로 인해서 고생은 했지만 무난히 수정해낼 수 있었습니다. ^^

특정구문 넣기 소스
#!/usr/bin/python

import sys , os
from cStringIO import StringIO


if len(sys.argv) < 2:
        print "error! example) repl.py directory"
        raise SystemExit

fileslist = os.popen("find %s -iname '*.asp'" % sys.argv[1]).readlines()

for fn in fileslist:
        # make backups
        fn = fn.strip()
        os.system( "cp -f %s %s" % ( fn , fn + ".bak") )
        nf = StringIO()
        lineno = 0
        for c in open(fn):
                if "<body" in c:
                        nf.write(c)
                        nf.write("<div id='zoomCtrl' style='position:absolute;top:0px;left:0p;'><!-- Space Zoom start-->")
                        os.system( "echo FILE:%s LINENO:%s >> header.log" % ( fn , lineno ) )
                elif "</body>" in c:
                        nf.write("</div> <!-- Space Zoom End -->")
                        nf.write(c)
                        os.system( "echo FILE:%s LINENO:%s >> footer.log" % ( fn , lineno ) )
                else:  
                        nf.write(c)
                lineno += 1
        nf.seek(0)
        open(fn,'w').write(nf.read())
특정구문 빼기 소스

#!/usr/bin/python

import sys , os
from cStringIO import StringIO


if len(sys.argv) < 2:
        print "error! example) repl.py directory"
        raise SystemExit

fileslist = os.popen("find %s -iname '*.jsp'" % sys.argv[1]).readlines()

for fn in fileslist:
        # make backups
        fn = fn.strip()
        os.system( "cp -f %s %s" % ( fn , fn + ".bak") )
        nf = StringIO()
        lineno = 0
        for c in open(fn):
                if "<div id='zoomCtrl' style='position:absolute;top:0px;left:0p;'><!-- Space Zoom start-->" in c:
                        os.system( "echo FILE:%s LINENO:%s >> header.log" % ( fn , lineno ) )
                elif "</div> <!-- Space Zoom End -->" in c:
                        os.system( "echo FILE:%s LINENO:%s >> footer.log" % ( fn , lineno ) )
                else:  
                        nf.write(c)
                lineno += 1
        nf.seek(0)
        open(fn,'w').write(nf.read())

오늘은 야근인 관계로 분석은 다음 기회에~ ^^
Creative Commons License
Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-동일조건변경허락 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
promise4u
2008/01/31 19:55 2008/01/31 19:55
TAG Python, 문자열 치환, 스크립트, 치환, 파이썬
트랙백은 하나, 댓글이 없습니다.

트랙백 주소 :: http://rayx.in/trackback/2460827

  1. from next page 삭제 제목 : next page 2013/05/13 14:13

    널위한약속 ≫ python으로 파일 안의 문자열 치환하기.

댓글을 달아 주세요

[로그인][오픈아이디란?]
오픈아이디로만 댓글을 남길 수 있습니다

글 목록 번호 : 1
◀ 다음 글 목록 이전 글 목록 ▶

참여하는 팀블로그



새로 등록된 글

    널위한약속 - 최근 글

  • 가을 몸, 박노해
  • 너 자신을 알라
  • 은교 감상평
  • 내 아내의 모든 것 감상평
  • 스타트업과 연애상대의...
  • 저와 함께 새로운 정답...
  • 한국에서 공동 사업이...
  • 머피 박사의 100가지...
  • 진정한 사랑은 강요하... (1)
  • 가족의 사랑 (1)

새로 달린 댓글

    널위한약속 - 최근 댓글

  • 영화에서 말하려는 것들... 2012 hd3235
  • 바보같은글 2012 장동주
  • 관리자만 볼 수 있는 댓... 2012 비밀방문자
  • 글 잘 읽었습니다. 진짜... 2011 양원호
  • 관리자만 볼 수 있는 댓... 2011 비밀방문자
  • 음 뭔가 사연이 있는 것... 2011 마루날
  • 아니지 앤드리는 자신만... 2011 ㅁㄴㅇ
  • 가족의 사랑에 대해 공감... 2011 이장석
  • 후회없는 삶을 사는 것이... 2011 이장석
  • 항상 기대감을 줄 수 있... 2011 이장석

새로 달린 트랙백

  • tile cleaning sacramento 05/13 tile cleaning sacramento
  • next page 05/13 next page
  • anger and anger management 05/13 anger and anger management
  • Free Penthouse Video Blog 05/13 Free Penthouse Video Blog
  • keygenarator 05/12 keygenarator

블로그 이미지
어쩜 우리는 사랑이라고 말하면서 자신의 욕심만을 채우려고 하는지도 모르겠습니다. by promise4u

공지사항

널위한약속 - 최근 공지

  • 텍스트큐브 1.5로 업그...

카테고리

전체 (873)
Blah. blah (155)
Think about (588)
Mentoring (7)
Book & Paper (25)
재테크/Finance (7)
Movie/Music (19)
For. Startup (1)
ONOFFMIX (2)
PeopleLOG人 (2)
Social Activity (10)
Bloggers! (2)
책 만들기 (1)
Work & Jobs (60)
Work Story (20)
Tip&Tech (30)
Scrap (3)
Good CF/Movie (7)
Mac's life (0)
Server & Network (3)
Linux SE (2)
Windows SE (1)
Network Admin (0)
Study (0)
English (0)
Japanese (0)
License (0)
Love & Live (39)
Food & Living (4)
Love story (26)
Travel (1)
Photo Story (0)
Mac's life (0)

태그목록

  • 좋은 뮤비
  • 블로그번개
  • 희귀병
  • 제시카알바
  • 컴퓨터구입
  • 파이썬
  • 기다리는 사랑
  • celine dion
  • 대선
  • 기준
  • 개발자
  • 24살
  • 좋은남자
  • 인터뷰
  • 프로필
  • 사건
  • TEXTCUBE
  • 참여정부
  • 인생이야기
  • R
  • Trac
  • 친구들에게
  • 마성
  • 사는법
  • 직장인 추천도서
  • 군대
  • 모뎀
  • 현역병특
  • 온신협
  • 인천상륙작전

글 보관함

  • 2012/08 (1)
  • 2012/07 (1)
  • 2012/05 (2)
  • 2012/04 (1)
  • 2012/03 (1)

달력

«   2013/05   »
일 월 화 수 목 금 토
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  

나와 연결된 세상

재미삼 연구소

  • 순대세상:Sday_순대포유
  • 상큐 블로그_SQStyle
  • 강자이너 블로그_강자이너

Twenty by 2.0

  • 쏭군은 열정드리머_쏭군
  • 마플공장 이야기_Milagrian
  • In to deep web 2.0 _꿈돌이
  • EXPJ_허준녕

IT 관련 블로그

  • 스마트플레이스_바비

YLC 사람들

  • 김정은 블로그_Jamie
  • 정우형 블로그_leefresh
  • 박현정 블로그_Smilehero

세계로 눈을 돌리자

  • 뉴욕에 사는 사람_Sujae
  • 뉴욕에서 의사하기_네로

친구

  • 온인선 블로그_미스타온
  • 강뒤호 블로그_Hoya
  • 김환 블로그_iHwan
  • 팔콩 블로그_8con
  • 펭도 블로그_Pengdo
  • 이준행 블로그_twinpix
Powered by Allblog

카운터

  • 전체 : 512605
  • 오늘 : 79
  • 어제 : 481

notice Location Tags Keylog Guestbook Admin
RSS promise4u's blog is powered by Tattertools 태터툴즈 이올린 / skin by 써머즈