4. 문서 파일을 읽어서 그 문서 파일 안에 있는 탭(tab)을 공백(space) 4개로 바꾸어 주는 스크립트를 작성해 보자.
- 내 답안
필요한 것: 문서 파일을 읽는다.
탭을 공백으로 바꾼다.
1) 문서 파일을 만들고("test6-5.txt") 탭이 들어간 내용을 작성한다.
f = open("C:/doit/test6-5.txt", 'w')
f.write(" You need python! ")
f.close()
2) 파일을 읽어 와서, 파일의 탭을 공백으로 바꾼다.(replace 쓰기)
f = open("C:/doit/test6-5.txt", 'r')
body = f.read()
body = body.replace(' ', ' ')
f = open("C:/doit/test6-5.txt", 'w')
f.write(body)
f.close()
*Q.여기서 궁금한 점: 탭이 공백으로 바뀌었는지 어떻게 구분하나?
- 해설
필요한 기능: 문서 파일 읽어 들이기, 문자열 변경하기(탭->공백)
입력: 문서 파일
출력: 탭이 공백으로 수정된 문서 파일
다음과 같은 형식으로 프로그램이 수행되도록 만든다.
python tabto4.py src dst
tabto4.py는 작성해야 할 파이썬 프로그램 이름,
src는 탭을 포함하고 있는 원본 파일 이름, dst는 파일 안의 탭을 공백 4개로 변환한 결과를 저장할 파일 이름
*a 파일의 내용 자체를 아예 새로운 파일 b에 저장한다. 나는 생각지도 못한 방법..!
1) 먼저 "tabto4.py" 파일을 작성한다.
import sys
src = sys.argv[1]
dst = sys.argv[2]
print(src)
print(dst)
2) 테스트를 위한 원본 파일(탭을 포함하는 파일)인 a.txt를 작성한다.
Life is too short
You need python
3) "tabto4.py"의 코드를 수정한다.
import sys
src = sys.argv[1]
dst = sys.argv[2]
f = open(src)
tab_content = f.read()
f.close()
space_content = tab_content.replace("\t", " "*4)
print(space_content)
4) 다음 명령을 수행하면 탭이 공백으로 변경돼 출력된다.
C:\doit>python tabto4.py a.txt b.txt
Life is too short
You need python
5) 바뀐 내용을 b.txt에 저장할 수 있게 "tabto4.py"를 수정한다.
import sys
src = sys.argv[1]
dst = sys.argv[2]
f = open(src)
tab_content = f.read()
f.close()
space_content = tab_content.replace("\t", " "*4)
f = open(dst, 'w')
f.write(space_content)
f.close()
6) 다음 명령을 수행하면 a.txt의 내용이 b.txt에 저장된다.
C:\doit>python tabto4.py a.txt b.txt
에디터로 b.txt 파일을 열어서 탭이 4개의 공백 문자로 변경되었는지 확인해 보자.
프로그램을 작성할 때 사용하는 에디터는 대부분 탭과 공백 문자를 다르게 표시하므로 눈으로 확인이 가능할 것이다.
*열어봤는데 차이를 잘 모르겠다...
단순히 파일을 만들어서 그 파일의 내용을 바꾸는 것에 그치지 말고 더 넓게 생각하고 풀어보자.
'강의 > 점프투파이썬' 카테고리의 다른 글
[점프투파이썬] 5. 하위 디렉터리 검색하기(os.listdir/os.path.join/splitext/isdir/os.walk) (0) | 2020.03.17 |
---|---|
[점프투파이썬] 3. 간단한 메모장 만들기(sys.argv) (0) | 2020.03.17 |
[점프투파이썬] 2. 게시판 페이징하기 (0) | 2020.03.17 |
[점프투파이썬] 1. 3의 배수와 5의 배수의 총합 구하기 (0) | 2020.03.17 |
댓글