파이썬 코칭스터디 1기 - 모두를 위한 파이썬(PY4E) 7강 (파일)

태온·2021년 8월 6일
0
post-thumbnail

7. 파일

📁 1. 파일 열기 - open()

  • open() 함수를 이용하여 파일을 열수 있다.
  • 사용법 : handle = open(파일명, 모드)
  • 파일명에 확장자도 포함 시켜야한다.

open() 함수는 handle을 반환하게 되고 handle은 파일에 대한 작업을 수행하기 위해 사용된다. handle은 텍스트가 파일 형태, 메모리에 저장된 문자열의 형태, 웹 사이트에서 존재하는 형태와 같이 다른 방식으로 저장되어 있는 텍스트를 처리하는 하나의 표준화된 방식이다. 또한, 많은 양의 문자 파일을 한꺼번에 읽어 발생할 수 있는 성능의 문제를 handle은 점진적으로 읽어 방지한다.

fhand = open('mbox.txt', 'r')

# open('파일명입력', '모드 선택')

# 1. 파일명 입력
# 파일명은 문자열 타입으로 입력하며, 확장자까지 포함시켜 준다.

# 2. 모드 선택
# 모드에서는 w 또는 r 두가지를 선택할 수 있다.
# 'w'는 파일을 작성할 때 사용하며, 'r'은 파일을 읽을 때 사용한다.

Untitled


📎 개행 문자 - \n

파이썬에서 행을 바꾸는 문자인 개행 문자는 **\n**이다. print() 함수를 사용하게 되면 해당 함수에 의해 **\n**가 발생하게 된다. 여기서 중요한 것은 **\n**도 하나의 문자라는 점이다.

아래 코드와 같이 문자열의 길이를 확인하기 위해 len() 함수를 호출해 보면 'Hello World!'와 'Hello\nWorld!'길이가 동일한 것을 확인할 수 있다.

stuff1 = 'Hello World!'
print(stuff1)
print(len(stuff1))

stuff2 = 'Hello\nWorld!'
print(stuff2)
print(len(stuff2))

# 결과
Hello World!
12
Hello
World!
12

📁 2. 파일 열기

Untitled 1

먼저, 파일을 열기 위해 위와 같이 mbox.txt라는 파일을 만들어준다!

✔️ 파일 핸들

  • 파일 핸들은 순서가 있고 연속적으로 구성된 텍스트 파일을 한줄 한줄 읽어나간다.
fhand = open('mbox.txt')
for line in fhand:
    print(line)

# 한줄씩 띄워져서 출력

Untitled 2

✔️ 파일의 라인 수 세기

  • 파일의 문장이 몇 줄 있는지 확인 가능하다.
fhand = open('mbox.txt')
count = 0

for line in fhand :
    count = count + 1
print('Line Count: ', count)

Untitled 3

✔️ 파일 전체 읽기

  • 전체 텍스트 파일의 길이와 단일한 문장을 읽어 들어올 수 있다.
fhand = open('mbox.txt')
inp = fhand.read()
print(len(inp))
print(inp[:20])

Untitled 4

✔️ 파일 내용 검색하기

  • startswith를 사용하여 특정 문자열로 시작하는 문자 찾기
fhand = open('mbox.txt')
for line in fhand:
    if line.startswith('My'):
        print(line)

Untitled 5

위와 같은 결과를 보면 한 줄씩 띄워진 것을 볼 수 있다. 이유는 print()함수로 출력되면서 자동으로 개행 문자가 계속해서 추가가 된다. 그러므로 오른쪽 공백 제거 함수인 rstrip() 함수를 사용하여 제거할 수 있다.

fhand = open('mbox.txt')
for line in fhand:
    line = line.rstrip()
    if line.startswith('My'):
        print(line)

Untitled 6

✔️ 파일 이름 입력 받기

  • 사용자가 파일의 이름을 직접 입력해야 하는 경우가 있다. 파일명을 적절힌 입력한다면 문제가 없겠지만 잘못된 파일명을 입력했을 때 처리방법을 생각할 필요가 있다. 이미 배운 try, except문을 적절히 활용하면 발생할 수 있는 오류 상황을 적절하게 해결하자.
fname = input('Enter the file name:  ')
try:
    fhand = open(fname)
except:
    print('File cannot be opened: ', fname)
    quit()

count = 0
for line in fhand:
    if line.startswith('My') :
        count = count + 1
print('There were', count, 'My lines in', fname)
  • 올바른 파일 이름을 입력할 경우

  • 올바르지 않은 파일 이름을 입력할 경우


📗 참고

모두를 위한 파이썬 (PY4E)

profile
코딩도시락(배워서 남 주자)

0개의 댓글