일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Django
- 원소주
- find_all()
- aof
- PYTHON
- 인공지능
- auc
- 이것이 코딩 테스트다
- beautifulsoup
- EarlyStopping
- Roc curve
- Logistic linear
- IOPub
- Trouble shooting
- semi-project
- ML
- SMTP
- json
- 파일입출력
- 그리디
- AI
- selenium
- 크롤링
- 트러블슈팅
- pandas
- 잡담
- stopwords
- 머신러닝
- category_encoders
- pos_tag
- Today
- Total
개발 블로그
[Python] 파일입출력 본문
Python의 파일입출력에 대해 알아보기 전에 utf-8에 대해 알아보고 싶다면 이 페이지를 참고하세요!!
Python 파일입출력은 기본적으로 open(), write(), close() 함수들로 이루어집니다.
그리고 with문을 통해서 close()함수를 생략할 수도 있습니다.
이제 하나하나 알아보겠습니다!
목차>
목차
01 파일 생성하기
파일을 생성하기 open()함수를 사용합니다. open 함수는 다음과 같이 "파일 이름"과 "파일 열기 모드"를 입력값으로 받고 결괏값으로 파일 객체를 돌려줍니다. (encoding='utf-8'은 생략 가능합니다.)
파일 객체 = open(파일 이름, 파일 열기 모드)
(C언어를 배우면서 파일입출력을 처음 만났을때 파일이름 뒤에 확장자 .txt를 안적어줘서 헤맸던 기억이 나네요ㅎㅎ)
file = open('cage.txt', encoding='utf-8', mode='w')
file.close()
< 파일 열기 모드 >
r | 읽기모드 - 파일을 읽기만 할 때 사용 |
w | 쓰기모드 - 파일에 내용을 쓸 때 사용 |
a | 추가모드 - 파일의 마지막에 새로운 내용을 추가 시킬 때 사용 |
파일 객체를 다 사용하고 난 뒤에는 반드시 close()함수를 사용하여 닫아줘야 합니다.
그렇지 않으면 파일객체가 계속 열려있는 상태를 유지하며 다음과 같은 에러가 발생합니다.
ValueError: I/O operation on closed file.
02 파일에 출력값 입력하기
쓰기모드(w)로 파일객체를 생성한 후에 write()함수를 사용하면 파일에 원하는 내용을 출력 할 수 있습니다.
직접 문자열을 전달해도 되지만 다음과 같이 리스트의 내용을 for문을 사용하여 하나씩 출력 할 수도 있습니다.
cage = ['Cat', 'Dog', 'Tiger']
file = open('cage.txt', encoding='utf-8', mode='w')
for animal in cage:
file.write(animal + '\n')
03 with문을 사용하여 파일 생성하기
with문을 사용하면 close()함수를 사용하지 않아도 with블록을 벗어나는 순간 파일 객체가 자동으로 close됩니다.
with open('cage_3.txt', encoding='utf-8', mode='w') as f : # as == alias == 별명
for animal in cage:
f.write(animal + '\n')
04 파일 읽기
open()함수를 사용하여 읽기모드 'r'로 파일 객체를 생성한 후 다음과 같은 함수를 사용하여 파일의 내용을 읽습니다.
- readline() : 파일의 한 줄을 읽어 반환한다.
- readlines() : 파일의 모든 줄을 읽어서 각각의 줄을 요소로 갖는 리스트를 반환한다.
이때 readlines()함수는 개행문자(\n)를 포함하므로 만약 개행문자를 제거한 상태로 읽고 싶다면 strip()함수를 사용하면 됩니다.
file = open('cage.txt', 'r', encoding='utf-8') # 읽기 모드
cage = file.readlines() # 여러줄 한번에 읽어서 리스트에 담기
for c in cage:
print(c.strip()) # 개행문자 제거
file.close()
'Programming Language > Python' 카테고리의 다른 글
[Python] pandas, seaborn 실습 (0) | 2022.03.23 |
---|---|
[Python ] Pandas DataFrame (0) | 2022.03.22 |
[Python] 컨테이너(list, dict, tuple, set) (0) | 2022.03.22 |
[Python] 기초 데이터 타입(int, float)과 문자열(string) (0) | 2022.03.21 |
[Toy_Project] Python 웹크롤링 - EPL순위 가져오기 (0) | 2022.03.21 |