Python의 입출력은 사용자와의 상호작용 및 데이터 처리의 핵심으로, 기본적으로 input() 함수를 통해 사용자로부터 데이터를 입력받고 print() 함수로 결과를 출력한다. 파일 입출력의 경우 open() 함수를 사용하여 텍스트나 바이너리 파일을 읽고 쓸 수 있으며, with 문을 활용하면 파일 리소스를 안전하게 관리할 수 있다. 고급 입출력으로는 CSV, JSON, Excel 등 다양한 형식의 데이터를 처리하는 라이브러리(pandas, json, csv 등)가 있어 실무에서 효율적인 데이터 처리가 가능하다. 또한 표준 입출력 스트림(sys.stdin, sys.stdout, sys.stderr)을 통해 시스템 레벨의 입출력 제어도 할 수 있어, 명령행 도구나 파이프라인 처리에 유용하다.
사용자 키보드 입력 및 화면 출력
사용자로부터 직접 데이터를 받고 화면에 결과를 보여주는 가장 기본적인 입출력.
# 사용자로부터 이름 입력받기
name = input("이름을 입력하세요: ")
# 입력받은 이름과 메시지를 화면에 출력하기
print(f"안녕하세요, {name}님!")
파일 읽기
기존에 있는 텍스트 파일의 내용을 읽어옴
# 'with' 구문은 파일을 사용 후 자동으로 닫아주어 편리합니다.
# 'r'은 읽기(read) 모드를 의미합니다.
# 인코딩을 'utf-8'로 지정하여 한글이 깨지는 것을 방지합니다.
try:
with open("my_file.txt", "r", encoding="utf-8") as file:
content = file.read() # 파일 전체 내용을 하나의 문자열로 읽어옴
print("--- 파일 내용 ---")
print(content)
except FileNotFoundError:
print("'my_file.txt' 파일이 존재하지 않습니다.")
파일 쓰기 (기존 내용 덮어쓰기)
파일을 새로 생성하거나, 기존 파일이 있다면 모든 내용을 지우고 새로운 내용을 씀
# 'w'는 쓰기(write) 모드를 의미합니다.
lines_to_write = ["첫 번째 줄입니다.\n", "두 번째 줄입니다.\n"]
with open("my_new_file.txt", "w", encoding="utf-8") as file:
file.write("새로운 내용을 작성합니다.\n")
file.writelines(lines_to_write) # 리스트의 여러 줄을 한 번에 작성
print("'my_new_file.txt' 파일이 성공적으로 생성되었습니다.")
파일에 내용 추가하기 (기존 내용에 이어쓰기)
기존 파일의 끝에 새로운 내용을 추가
# 'a'는 추가(append) 모드를 의미합니다.
with open("my_new_file.txt", "a", encoding="utf-8") as file:
file.write("이 내용은 파일 끝에 추가됩니다.\n")
print("'my_new_file.txt' 파일에 내용이 추가되었습니다.")
파이썬 open() 함수에서 “r”, “w”, “a”는 파일을 여는 모드를 지정하는 문자이다. r (read)은 기존 파일을 읽기 전용으로 열고, w (write)는 파일에 쓰기 위해 열며 기존 내용은 모두 삭제하고 새로 쓴다. a (append) 역시 쓰기 위한 모드지만, 기존 내용 끝에 새로운 내용을 추가한다는 점에서 w와 차이가 있다.