본문 바로가기

Language/Python

<파이썬 기초> 08. 파일

이 글은 미시건 주립대학교 찰스 교수의 MOOC강의인 Python for Everybody를 수강하고 정리하며 쓰는 글입니다.

 

   

 우리는 파이썬으로 파일을 읽거나 쓸 수 있다.

 파일은 다음과 같은 방식으로 먼저 파이썬으로 불러들일 수 있다.

X = open('practice.txt,'r')

  위는 X라는 변수에 practice 텍스트 파일을 읽기위해 할당하였다는 뜻이다. 'r'대신 'w'를 사용하면 파일을 쓴다는 의미이다. 참고로 우리가 연습해 볼 텍스트파일은 아래와 같다.

 이를 활용하여 파이썬으로 텍스트를 출력해보자. 

fhand = open(r'C:\Users\Desktop\practice.txt','r')
for line in fhand :
    print(line,end='')
    

# Hi!
# I'm harry
# Welcome to my blog

 파일이 파이썬 파일과 같은 경로에 있다면 파일명만 써도 되지만 다른경로에 있을경우 위와 같이 경로를 표시한다. 그러나 경로에는 역슬래시(\)가 들어가므로 파이썬이 문자로 인식하지 못할 수 있다. 참고로 파이썬이 특수하게 인식하는 문자들 ( ' " \ 등)의 앞에 역슬래시를 넣으면 문자로 인식하지만 하나하나 넣기 귀찮으므로, 가장 앞에 r이라는 글자를 넣어줌으로써 앞으로 나올 특수문자는 전부 문자라고 선언하였다.

 

 for 반복문을 사용한 이유는 텍스트파일을 한줄씩 읽어 들이기 위함이다. 그러나 단순히 line을 print시키면 각 줄이 한칸씩 더 띄어져서 나온다. 그 이유는 텍스트 파일에서 한 줄에 끝에는 우리도 모르게 개행문자(\n)이 포함되기 때문이다. 개행문자란 말그대로 행을 다음으로 옮기는 기능을하는 문자이다. 따라서 end문자가 ''(없다)고 선언하여 더 이상 띄지 않도록 선언하였다.

 

fhand = open('practice.txt','r')
count = 0
for line in fhand :
    count = count+1
    print(count)
print('줄 수 :', count)


# 1
# 2
# 3
# 줄 수 : 3

 

 count라는 변수를 통해 줄 수를 세어보는 프로그램을 코딩하였다.

 이번에는 read메소드를 통해 더 간단하게 텍스트 파일을 읽어보겠다.

fhand = open(practice.txt','r')
inp = fhand.read()
print(inp)

# Hi!
# I'm harry
# Welcome to my blog

 위를 보면 알 수 있지만 read메소드를 통해 개행문자까지 모두 읽어들였다. len함수를 통해 inp변수를 세어보면 개행문자를 포함한 글자 수가 나온다.

 

fhand = open('practice.txt','r')
for line in fhand :
    if line.startswith('Welcome') :
        print(line)
 
 
 # Welcome to my blog

 위는 파일 내용을 검색하는 프로그램을 코딩한 것이다. Welcome이라는 문자로 시작하는 문자열을 출력하도록 하였다. 참고로 위를 실행하면 개행문자까지 인식하여 한줄이 띄어지게 되는데, line=line.rstrip()으로도 개행문자를 지울 수 있다.

 

 

 

 


참고

 

 

PY4E - Python for Everybody

 

www.py4e.com

 

모두를 위한 프로그래밍 : 파이썬 강좌소개 : edwith

- 커넥트재단

www.edwith.org

 

'Language > Python' 카테고리의 다른 글

<파이썬 기초> 10. 딕셔너리  (0) 2020.10.20
<파이썬 기초> 09. 리스트  (0) 2020.10.13
<파이썬 기초> 07. 문자열  (0) 2020.10.04
<파이썬 기초> 06. 루프와 반복문  (0) 2020.10.03
<파이썬 기초> 05. 함수  (0) 2020.10.02