본문 바로가기
프로그래밍/Python

[Python]파이썬 read()로 파일 읽기 예제

by wyatti 2023. 5. 18.

Python에서 파일을 읽을 때 read() 메서드를 사용합니다. read() 메서드는 파일의 내용을 전체적으로 읽어와서 하나의 문자열로 반환합니다.
파이썬 read()

 

Python에서 파일을 읽을 때 read() 메서드를 사용합니다. read() 메서드는 파일의 내용을 전체적으로 읽어와서 하나의 문자열로 반환합니다.

 

 

 

 

파이썬 read() 파일 읽기 구문

read() 메서드는 다음과 같은 구문을 가집니다.

file.read(size)
  • file: 파일 객체입니다. 파일을 열고 얻은 파일 객체를 참조합니다.
  • size (선택적): 읽을 바이트 수를 지정하는 매개변수입니다. 이 매개변수를 생략하면 파일의 전체 내용을 읽습니다. 기본값은 -1로, 파일의 끝까지 읽습니다.

 

read() 메서드는 파일의 내용을 지정한 크기만큼 읽어와 문자열로 반환합니다. size 매개변수를 생략하거나 -1로 설정하면 파일의 전체 내용을 읽어옵니다. 반환된 문자열에는 개행 문자(\n) 등도 포함될 수 있습니다.

 

 

 

파이썬 read() 파일 읽기 예제

1. 파이썬 read()로 파일의 전체 내용 읽기

file = open("input.txt", "r")
content = file.read()
file.close()
print(content)

이 예제는 "input.txt" 파일을 읽기 모드로 열고, read() 메서드를 사용하여 파일의 전체 내용을 읽어옵니다. 그리고 content 변수에 할당한 후 출력합니다.

 

 

 

2. 파이썬 read()로 파일에서 한 줄씩 읽기

file = open("input.txt", "r")
line = file.readline()
while line:
    print(line.strip())  # 개행 문자 제거 후 출력
    line = file.readline()
file.close()

이 예제에서는 "input.txt" 파일을 읽기 모드로 열고, readline() 메서드를 사용하여 파일에서 한 줄씩 읽어옵니다. while 루프를 사용하여 파일의 끝까지 반복하면서 각 줄을 출력합니다. strip() 함수를 사용하여 개행 문자를 제거하고 출력합니다. 마지막으로 파일을 닫습니다.

 

 

 

3. 파이썬 read()로 파일의 각 줄을 리스트로 읽기

file = open("input.txt", "r")
lines = file.readlines()
file.close()
for line in lines:
    print(line.strip())  # 개행 문자 제거 후 출력

이 예제에서는 "input.txt" 파일을 읽기 모드로 열고, readlines() 메서드를 사용하여 파일의 각 줄을 리스트로 읽어옵니다. for 루프를 사용하여 각 줄을 반복하면서 출력합니다. strip() 함수를 사용하여 개행 문자를 제거하고 출력합니다. 마지막으로 파일을 닫습니다.

 

 

 

4. 파이썬 read() 예외 처리를 포함한 파일 읽기 예제

try:
    file = open("input.txt", "r")
    content = file.read()
    file.close()
    print(content)
except FileNotFoundError:
    print("File not found.")
except PermissionError:
    print("Permission denied.")

위의 예제에서는 파일을 열고 읽는 부분을 try-except 블록으로 감싸고, FileNotFoundError와 PermissionError 예외를 처리합니다. 파일이 존재하지 않는 경우에는 "File not found." 메시지를 출력하고, 열기 권한이 없는 경우에는 "Permission denied." 메시지를 출력합니다.

 

위의 예제들은 파일을 읽는 다양한 방법을 보여줍니다. 파일의 구조와 읽어야 하는 데이터에 맞게 적절한 방법을 선택하여 사용할 수 있습니다.

 

댓글