TIL - python(연습문제) # 탭을 4개의 공백으로 만들기

한성봉·2021년 4월 27일
0

이 글은 도서 '점프 투 파이썬' 연습문제를 토대로 작성하였습니다.

탭을 4개의 공백으로 만들기

  • 필요한 기능 : 문서 파일 읽어 들이기, 문자열 변경하기
  • 입력받는 값 : 탭을 포함한 문서 파일
  • 출력하는 값 : 탭이 공백으로 수정된 문서 파일

python tabto4.py src dst
위와 같은 형식으로 프로그램이 수행되도록 할 것이다.

  • tabto4.py : 작성해야 할 파이썬 프로그램 이름
  • src : 탭을 포함하고 있는 원본 파일 이름
  • dst : 파일 안의 탭을 공백 4개로 변환한 결과를 저장할 파일 이름

1. tabto4.py 파일 작성

import sys

src = sys.argv[1]
dst = sys.argv[2]

print(src)
print(dst)

sys.argv를 사용하여 입력값을 확인하도록 만든 코드이다.

2. 입력값 확인

% python tabto4.py a.txt b.txt #enter
a.txt
b.txt

정상적으로 출력되는 것을 확인할 수 있다.

3. a.txt 작성

테스트를 위한 원본 파일(탭을 포함하는 파일)인 a.txt를 다음과 같이 작성한다. 각 단어는 탭(\t)문자로 분리되도록 입력해야 한다.

Life	is	too	short #탭으로 구분
You	need	python #탭으로 구분

4. a.txt 탭 -> 4개의 공백 변환

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)

src에 해당되는 입력 파일을 읽어서 그 내용을 tab_content라는 변수에 저장한 후 문자열의 replace 함수를 사용하여 탭(\t)을 4개의 공백으로 변경하는 코드이다.

5. tabto4.py 파일 변경 후 명령실행

% python tabto4.py a.txt b.txt
Life    is    too    short
You    need    python

공백 4개로 출력되었을 것이다. 하지만 탭과 공백4개의 차이점은 눈으로 보았을 때 확안하기 어렵다.
변경된 내용을 b.txt라는 파일에 저장할 수 있도록 해보자

6. b.txt 생성을 위한 코드 작성

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()

탭이 공백으로 변경된 space_content를 출력 파일인 dst에 쓰도록 코드를 수정하였다.

7. 코드 수정 후 명령 수행

% python tabto4.py a.txt b.txt
위 명령을 수행하면 b.txt파일이 디렉토리 안에 생성된다. b.txt파일을 확인하면 a.txt와 동일한 내용이 저장되어있는 것을 확인할 수 있다.
txt파일을 에디터에서 확인하면 공백과 탭의 차이점을 확인할 수 있다.

0개의 댓글