일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- programmers
- 야근지수
- Special String Again
- 프로그래머스
- Roads and Libraries
- 머신러닝
- hackerrank
- python
- Find the nearest clone
- Reverse Shuffle Merge
- 피보나치 함수
- 구슬탈출2
- 코딩테스트
- DFS: Connected Cell in a Grid
- 백준
- Max Array Sum
- 격파르타 후기
- BFS: Shortest Reach in a Graph
- 격파르타 장점
- Recursion: Davis' Staircase
- 알고리즘
- Interview Preparation Kit
- 매칭점수
- Common Child
- 격파르타 합격후기
- Algorithm
- [sqld]자격증합격
- candies
- 파이썬
- 해커랭크
- Today
- Total
Archive
[파이썬 기초] 파일 처리 본문
1. 파일 읽고 쓰는 순서
- 파일을 연다. open()
# encoding
1 2 3 | # encoding옵션을 주고 열자. (보통 utf-8, 한글이 진다면 euc-kr 해보자) a_file = open("textfile.txt", encoding="utf-8") a_file = open("textfile.txt", encoding="euc-kr") | cs |
- 파일을 읽고 쓴다. read()/write()
- 파일을 닫는다. close()
2. 파일을 열고 쓰는 간단한 예제
1 2 3 4 5 6 7 8 9 10 | # 파일을 열자 a_file =open("test.txt", mode="w", encoding="utf-8") # 파일에 내용을 쓰자 a_file.write("나는 실패해본 적이 없다.\n") a_file.write("1만 가지의 방법을 찾아냈을 뿐이다. \n") a_file.write("- 토마스 에디슨\n") # 파일을 닫는다 a_file.close() | cs |
- mode의 값
# w : 파일을 쓰기 모드로 연다.
# r : 파일을 읽기 모드로 연다.
# a : 쓰기 모드로 열고 파일이 존재하면 가장 끝부분에서 쓰기 시작한다.
# b : 바이너리모드
# t : 텍스트 모드(기본값)
- 쓰기 작업을 할 때 mode에 기본적으로 'r'이 암묵적으로 지정된다.
3. 파일을 읽고 쓸 때 try.. finally..로 확실하게 하자.
1 2 3 4 5 6 7 8 9 10 | # 파일을 열자 a_file =open("test.txt", mode="w", encoding="utf-8") try: a_file.write("나는 실패해본 적이 없다.\n") a_file.write("1만 가지의 방법을 찾아냈을 뿐이다. \n") a_file.write("- 토마스 에디슨\n") finally: a_file.close() | cs |
4. with구문을 사용해 간단하게 하자.
- with구문을 사용하면 try.. finally.. 사용하지 않아도 자동으로 마지막에 close()메서드를 호출한다.
1 2 3 | with open("test.txt", mode="w") as f: f.write("나는 실패해본 적이 없다.\n") f.write("1만 가지의 방법을 찾아냈을 뿐이다.\n") | cs |
5. 텍스트 파일을 1행씩 읽어서 처리하자.
- 한 행씩 처리하려면 for구문을 사용하자.
1 2 3 4 | with open("test.txt", encoding="utf-8") as tf: for line in tf: # 1줄씩 프린트한다. print(line) | cs |
- 예제
- read()를 사용하면 모든 데이터를 메모리에 읽어들인다. 읽어들이는 파일이 너무 크다면 오류가 발생할 수 있고, 이를 방지하기 위해 한 행씩 읽어들인다.
6. json 모듈 사용하기
- 리스트나 Dictionary와 같은 데이터 형을 저장할 때 JSON 형을 사용하자.
- json.dump(obj) : obj를 JSON문자열로 변환한다.
- json.load(json) : JSON문자열을 파이썬 오브젝트로 변환한다.
- json.dump(obj, fp) : obj를 JSON 형으로 파일에 저장한다.
- json.load(fp) : JSON형 파일(fp)에서 데이터를 읽어 들인다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | import json # Dictionary형 데이터 data = { "no" : 5, # 수치형 데이터 "code" : ("jas", 1, 19), # 튜플형 데이터 "scr" : "be quit to listen, slow to speak. slow to anger", # 문자열 } # 파일에 쓰기 filename = "test.json" with open(filename, "w") as fp: json.dump(data, fp) # 파일에서 읽어오기 with open(filename, "r") as fp: r = json.load(fp) print("no=",r["no"]) print("code=", r["code"]) print("scr=", r["scr"]) | cs |
'공부 > Python' 카테고리의 다른 글
[파이썬 기초] 리스트 내장 표기 (0) | 2017.10.03 |
---|---|
[파이썬 기초] 정규표현 (0) | 2017.10.03 |
[파이썬 기초] 모듈 (0) | 2017.10.02 |
[파이썬 기초] iterator, generator (0) | 2017.10.02 |
[파이썬 기초] 익명함수 (0) | 2017.10.02 |