-
파이썬 | 파일 처리(1): 메모장 파일 쓰고 읽기Programming/Python 2025. 9. 12. 18:00반응형
1. 파이썬
2. 변수
- 2.1. 기본자료형
- 2.2. 복합자료형
- 2.3. 자료형 메소드
- 2.4. 객체 복사
3. 조건문과 반복문
4. 예외 처리
5. 사용자 정의 함수
6. 모듈, 패키지, 라이브러리
7. 파일 처리
8. 객체 지향 프로그래밍
1. 파일 처리

파일 처리 메모장 파일로도 익숙한 텍스트 형식은 파이썬에서 흔하게 사용하는 형식이다. 파일 내용으로 텍스트만 포함하며, 글꼴이나 이미지 등은 포함하지 않는다. 사람이 바로 읽을 수 있는 아스키(ASCII)나 유니코드(Unicode) 문자로 텍스트가 저장되므로 직접 읽거나 편집하기에 용이하다. 파이썬은 텍스트 파일에 저장된 데이터를 불러와 내용을 수정하고 그 결과를 다시 텍스트 파일로 저장하는 등의 파일 처리를 지원하며, 이를 이용해 기존에 저장된 메모장의 내용을 수정하거나 새롭게 작성하는 것이 가능하다.
2. 파일 쓰기

파일 쓰기 파이썬으로 텍스트 파일을 처리하기 위해서는 아래 예시와 같이 open() 함수를 통해 해당 파일과 연결된 객체를 생성하고 변수에 할당해야 한다. 이때 함수의 첫 번째 위치 전달인자로 텍스트 파일의 이름과 확장자를 포함한 파일 경로 문자열을 입력한다. 텍스트 파일 이름과 확장자만을 포함한 문자열을 입력할 경우, 텍스트 파일이 파이썬 파일과 동일한 경로에 위치하고 있다는 것을 지칭한다. 두 번째 키워드 전달인자 mode에는 텍스트 파일을 읽기용으로 처리할 것인지, 쓰기용으로 처리할 것인지를 지정할 수 있다. 해당 예제에서는 새로운 파일을 생성하여 텍스트를 작성(write)하기 위해 'w'를 할당하였다. 만약 동일한 이름의 텍스트 파일이 동일한 경로에 이미 존재하면 기존의 데이터를 삭제하고 새로 작성하므로 주의가 필요하다.
파일 객체를 쓰기 모드로 생성한 후에는 write() 메소드를 이용해 아래 예시와 같이 문자열을 텍스트 파일에 추가할 수 있으며, 작성을 모두 완료하였다면 파일 객체를 닫기 위해 close() 메소드를 반드시 사용한다. 쓰기 모드 상태에서 close() 메소드를 호출하지 않고 프로그램을 종료하면 텍스트 파일 제어 권한이 제대로 양도되지 않아 파이썬 외 프로그램에서 텍스트 파일 접근 시 문제가 발생할 수 있으니 항상 확인하자.blog = open('VEDACUBE.txt', mode='w') # 파일 객체 생성 (쓰기 모드) blog.write('Hello! ') # 텍스트 파일에 문자열 작성 blog.write('Welcome to VEDACUBE!\n') blog.write(r'https://vedacube.tistory.com/') blog.close() # 파일 객체 종료3. 파일 수정하기

파일 수정하기 기존에 있는 텍스트 파일을 불러와 텍스트를 추가(add)하고 싶다면 키워드 전달인자 mode에 'a'를 할당한다. write() 메소드로 텍스트 파일에 문자열을 입력하면 기존에 있었던 텍스트 바로 뒤에 문자열을 추가한다. 만약 문자열로 입력한 파일 경로에 텍스트 파일이 존재하지 않더라도 파일을 새로 생성하여 처리한다. 기능 자체는 'w'와 같지만 기존에 있는 텍스트 파일을 삭제하지 않고 보존한 상태에서 내용을 추가한다는 점이 다르다.
category = ['Engineering', 'Technology', 'Programming'] blog_revise = open('VEDACUBE.txt', mode='a') # 파일 객체 생성 (추가 모드) blog_revise.write('\n[Category]\n') # 텍스트 파일에 문자열 추가 for i in category: blog_revise.write(f'- {i}\n') blog_revise.close() # 파일 객체 종료텍스트 파일에는 문자열만 입력할 수 있으므로, 파일에 입력하려는 변수의 자료형이 정수나 실수라면 아래 예시처럼 문자열로 형변환하여야 한다. 형변환 하지 않고 정수나 실수를 텍스트 파일에 입력하려 하면 오류가 발생하니 주의하도록 하자.
numbers =[1, '0', -7, '2025', 3.141, -2.718] blog_revise = open('VEDACUBE.txt', mode='a') for number in numbers: if type(number) != str: blog_revise.write(f'{str(number)}\n') # 문자열로 형변환 else: blog_revise.write(f'{number}\n') blog_revise.close()4. 파일 읽기

파일 읽기 텍스트 파일에 저장된 문자열을 불러오기 위해 읽기(read)용으로 파일을 처리할 때는 키워드 전달인자 mode에 'r'을 할당한다. 이때 문자열로 입력한 파일 경로에 텍스트 파일이 존재하지 않으면 오류가 발생한다. 텍스트 파일을 읽을 때는 주로 read(), readline(), readlines() 메소드를 사용한다. read() 메소드는 텍스트 파일 내에 있는 문자열을 모두 복사하여 하나의 문자열로 반환한다.
note = open('VEDACUBE.txt', mode='r') # 파일 객체 생성 (읽기 모드) data = note.read() # 텍스트 파일 내 문자열 전체 복사 print(data) note.close()readline() 메소드는 텍스트 파일 내에 있는 문자열 한 줄을 복사하여 문자열로 반환한다. 해당 메소드를 한 번 더 사용하면 다음 줄에 있는 문자열을 복사하여 반환한다. 텍스트 파일 내 문자열을 끝까지 출력하고 싶은데 몇 줄을 포함하고 있는지 모른다면 readline() 메소드를 사용하지 않고도 for문을 이용하여 아래 예시처럼 출력할 수 있다.
note = open('VEDACUBE.txt', mode='r') data1 = note.readline() # 텍스트 파일 내 문자열 한 줄 복사(1) print(data1) data2 = note.readline() # 텍스트 파일 내 문자열 한 줄 복사(2) print(data2) for line in note: # 텍스트 파일 내 문자열을 모두 출력 print(line) note.close()readlines() 메소드는 텍스트 파일 내에 있는 문자열을 한 줄 단위로 복사하여 리스트로 반환한다. read() 메소드처럼 모든 문자열을 복사하지만, readline() 메소드처럼 한 줄 단위로 객체를 생성한다.
note = open('VEDACUBE.txt', mode='r') data = note.readlines() # 텍스트 파일 내 문자열 한 줄 단위 리스트로 반환 print(data) for line in data: print(line) note.close()
[함께 읽으면 좋은 페이지]
파이썬 | 파일 처리(2): with-as
1. 파이썬 1.1. 기본 기능과 규칙 2. 변수2.1. 기본자료형 2.1.1. 정수형, 실수형, 논리형, 문자열 2.2. 복합자료형 2.2.1. 리스트, 튜플 2.2.2. 딕셔너리, 세트 2.3. 자료형 메소드 2.3.1. 리스트 메소드 2.3.2.
vedacube.tistory.com
참고문헌
- 박진수. (2019). 바로 쓰는 파이썬. 서울대학교출판문화원.반응형'Programming > Python' 카테고리의 다른 글
파이썬 | 객체 지향 프로그래밍(1): 클래스와 인스턴스 (0) 2025.10.17 파이썬 | 파일 처리(2): with-as (0) 2025.09.19 파이썬 | 객체 복사: 할당, 얕은 복사, 깊은 복사 (2) 2025.08.15 파이썬 | 모듈, 패키지, 라이브러리: import-as (1) 2025.07.18 파이썬 | 사용자 정의 함수(3): 지역변수와 전역변수 (0) 2025.06.20