일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- Asteroid RL
- 딥러닝
- Class
- 델
- 미분 방정식
- 선적분
- java
- 강화학습
- dictionary
- cURL
- 소행성
- 함수
- 자료형
- 피보나치 수열
- 코드업
- 벡터해석
- 딕셔너리
- 회로이론
- 2P1L
- BST
- 자바
- 계단 오르기
- 벡터 해석
- 파이썬
- 이진탐색트리
- 최단 경로
- 백트래킹
- Python
- auto-encoder
- 신경망
- Today
- Total
Zeta Oph's Study
[Python 기초 문법] 텍스트 프로세싱 본문
planets.txt
Mercury
Venus
Earth
Mars
Jupiter
Saturn
Uranus
Neptune
위와 같은 예시 텍스트 파일로 설명하겠다.
파일객체
open 함수에 의해 반환되는 객체 - 파이썬 환경에서 텍스트 파일을 읽고 쓸 수 있도록 지원해줌
텍스트 파일을 처리하는 모드
mode 인자 | 설명 |
'r' | read mode. 경로의 파일을 호출하여 읽는 것만 가능. 경로에 파일이 없다면 에러 발생 |
'w' | write mode. 파일에 내용을 쓸 수 있는 모드. 경로에 파일이 없다면 새로운 파일 생성, 경로에 파일이 있다면 덮어쓰기 됨. 내용 중간부터 작성 불가 |
'a' | append mode. 쓰기모드 'w'와 다르게 기존 파일이 존재하면 기존 내용 유지한 채 이어서 작성 |
'x' | 경로에 파일이 없으면 'w' 모드, 파일이 있다면 에러 발생 |
'b' | binary mode. |
+ | 'r+', 'w+', 'a+' 와 같이 사용. 읽기 쓰기 모두 가능해짐 |
파일객체는 open 함수와, close 함수로 열고 닫을 수 있다.
f = open(file_path, mode)
f.close()
open 함수로 연 f가 파일 객체가 되는 것이다.
mode 자리에 위의 'r', 'w' 등을 써넣으면 된다.
작업이 종료되는 close 하는 것이 파일을 안전하게 닫을 수 있다.
파일 쓰기 : 'w' 모드 / 'a' 모드
* 파일 객체 이름을 f로 하고 설명하겠다.
f.write(str) : 문자열 str을 파일에 작성
f.writelines(list) : list의 값을 파일에 작성. 리스트 원소를 순서대로 공백 없이 작성함
(공백 등을 삽입하고 싶으면 .join 함수 등 사용)
줄바꿈(Enter) : \n
탭(Tab) : \t
위 공백 문자를 통해 줄바꿈(Enter)과 탭(Tab)을 사용할 수 있다.
'w' 모드이면 모든 내용 삭제 후 처음부터 작성, 'a' 모드이면 끝에부터 이어서 작성이다.
f = open("test.txt", 'w')
f.write("1234\n")
f.write("abcd")
f.close()
test.txt
1234
abcd
파일 읽기 : 'r' 모드
* 마찬가지로 파일 객체 이름을 f로 하고 설명하겠다.
f.read() : 파일 내용 전체 읽기 - 결과값 단일 문자열로 반환
f.readline() : 개행문자 \n을 기준으로 line 하나를 읽어옴 (\n은 포함 X) - 결과값 단일 문자열로 반환
f.readlines() : 파일 내용 전체 읽어옴. 개행문자 \n을 기준으로 분리됨 (\n이 원소의 맨끝이 되도록) - 결과값 리스트 반환
for문과 in 연산자를 사용해서도 읽을 수 있다.
for line in f:
...
위와 같은 코드는 f.readlines()가 반환한 리스트에서 원소를 하나씩 뽑아내는 것과 같은 기능을 한다. 다만 readlines 함수는 한꺼번에 내용을 읽어오는 반면, 위 방법은 하나씩 읽어오므로 중간에 break로 빠져나갈 수 있다는 장점이 있다.
공백문자를 따로 제거해주지는 않으므로 .strip() 함수를 통해 제거해주어야 한다.
f = open("planets.txt", 'r')
for line in f:
name = line.strip().upper()
print(name, end=' ')
f.close()
TERMINAL
MERCURY VENUS EARTH MARS JUPITER SATURN URANUS NEPTUNE
'프로그래밍 > Python' 카테고리의 다른 글
[Python 라이브러리] csv 모듈 (1) | 2024.03.04 |
---|---|
[Python 기초 문법] 클래스 (Class) (2) (2) | 2024.03.03 |
[Python 기초 문법] 클래스 (Class) (1) (2) | 2024.03.03 |
[Python 기초 문법] 사전 (Dictionary) (1) | 2024.03.03 |
[Python 기초 문법] 집합 (Set) (1) | 2024.03.02 |