파일 입출력
파일 열기:
• open() : 경로 + 모드; 'r' (읽기), 'w' (쓰기), 'a' (추가)
파일 읽기:
• read() : 파일 전체 내용 읽기
• readline() :파일 한 줄씩 읽기
• readlines() : 파일의 모든 줄을 읽고, 각 줄을 요소로 갖는 리스트 반환
파일 쓰기:
• write() : 문자열(쓸 내용)
• writelines() : 리스트의 각 요소 파일에 쓰기
파일 닫기:
• close() : 파일 닫기
"r": 읽기 모드 (기본값). 파일을 읽기 위해 열기
"w": 쓰기 모드. 파일을 쓰기 위해 열기 이미 파일이 존재하면 덮어쓰고 파일이 없으면 새 파일 생성
"a": 추가 모드. 파일의 끝에 내용을 추가하기 위해 열기 파일이 없으면 새 파일 생성
"x": 배타적 생성 모드. 파일을 생성하기 위해 열기 파일이 이미 존재하는 경우 오류가 발생
"b": 이진 모드. 바이너리 파일을 열기
"t": 텍스트 모드 (기본값). 텍스트 파일을 열기
# 파일을 쓰기 모드로 엽니다.
file = open("example.txt", "w")
# 파일에 데이터를 작성합니다.
file.write("Hello, world!\n")
file.write("This is an example file.\n")
file.write("Writing some lines.\n")
# 파일을 닫습니다.
file.close()
# 파일을 읽기 모드로 열고 데이터를 읽는 예제입니다.
file = open("example.txt", "r")
# 파일 전체를 읽어옵니다.
contents = file.read()
print("전체 내용:")
print(contents)
# 파일을 닫습니다.
file.close()
# 파일을 다시 읽기 모드로 열고 한 줄씩 읽는 예제입니다.
file = open("example.txt", "r")
print("한 줄씩 읽기:")
# 파일의 각 줄을 반복하며 읽어옵니다.
for line in file:
print(line.strip())
# 파일을 닫습니다.
file.close()
# 파일을 읽기 모드로 열고 모든 줄을 읽어 리스트로 반환하는 예제입니다.
file = open("example.txt", "r")
lines = file.readlines()
print("리스트로 읽기:")
print(lines)
# 파일을 닫습니다.
file.close()
Json 다루기
JSON 파싱
json.loads : JSON 문자열을 Python 객체(딕셔너리)로 변환
import json
# JSON 문자열
data = {'name': 'John', 'age': 30, 'city': 'New York'}
# JSON 문자열을 Python 객체로 변환
data = json.loads(json_data)
# Python 객체 출력
print(data)
print(type(data))
json.load : JSON 파일을 Python 객체(딕셔너리)로 변환
import json
with open('data.json') as file:
data = json.load(file)
print(data["employee"])
print(data["employee"]["name"])
print(data["employee"]["salary"])
JSON 직렬화
json.dumps : Python 객체를 JSON 문자열로 변환
import json
# Python 객체
data = {'name': 'John', 'age': 30, 'city': 'New York'}
# Python 객체를 JSON 문자열로 변환
json_data = json.dumps(data)
# JSON 문자열 출력
print(json_data)
print(type(json_data))
json.dump : Python 객체를 JSON 파일로 변환
import json
# Python 객체
data = {'name': 'John', 'age': 30, 'city': 'New York'}
# Python 객체를 JSON 파일로 변환
with open('data2.json', 'w') as file:
json.dump(data, file)
requests
pip install requests
GET 요청 보내기
import requests
response = requests.get(
'https://jsonplaceholder.typicode.com/posts')
print(response.text)
POST 요청 보내기
body data가 있어야 한다
import requests
data = {'title': 'foo', 'body': 'bar', 'userId': 1}
response = requests.post(
'https://jsonplaceholder.typicode.com/posts', data=data)
print(response.text)
PUT 요청 보내기
import requests
data = {'title': 'foo', 'body': 'bar', 'userId': 1}
response = requests.put(
'https://jsonplaceholder.typicode.com/posts/1', data=data)
print(response.text)
DELETE 요청 보내기
import requests
response = requests.delete(
'https://jsonplaceholder.typicode.com/posts/1')
print(response.text)
CURL
GET
curl https://jsonplaceholder.typicode.com/posts
POST
curl -X POST -d "title=foo&body=bar&userId=1" https://jsonplaceholder.typicode.com/posts
PUT
curl -X PUT -d "title=foo&body=bar&userId=1" https://jsonplaceholder.typicode.com/posts/1
DELETE
curl -X DELETE https://jsonplaceholder.typicode.com/posts/1
CSV 다루기
CSV 읽기
csv. reader
# 파이썬에서 csv 파일을 다루기 위해 모듈 import
import csv
csv_path = "sample.csv"
# csv를 list 자료형으로 읽기
csv_file = open(csv_path, "r", encoding="utf-8")
# csv.reader : 파일 객체를 인수로 받아들여 순회 가능한 reader 객체 반환
csv_data = csv.reader(csv_file)
# print(type(csv_data))
for i in csv_data:
print(i)
# 작업이 끝난 csv 파일을 닫아줍니다.
csv_file.close()
# result output
"""
['email', 'birthyear', 'name', 'Location']
['laura@example.com', '1996', 'Laura Grey', 'Manchester']
['craig@example.com', '1989', 'Craig Johnson', 'London']
['mary@example.com', '1997', 'Mary Jenkins', 'London']
['jamie@example.com', '1987', 'Jamie Smith', 'Manchester']
['john@example.com', '1998', 'John', 'Manchester']
"""
csv.DictReader
# 파이썬에서 csv 파일을 다루기 위해 모듈 import
import csv
csv_path = "sample.csv"
# csv를 dict 자료형으로 읽기
csv_file = open(csv_path, "r", encoding="utf-8")
csv_data = csv.DictReader(csv_file)
# print(type(csv_data))
for i in csv_data:
print(i)
csv_file.close()
# result output
"""
{'email': 'laura@example.com', 'birthyear': '1996', 'name': 'Laura Grey', 'Location': 'Manchester'}
{'email': 'craig@example.com', 'birthyear': '1989', 'name': 'Craig Johnson', 'Location': 'London'}
{'email': 'mary@example.com', 'birthyear': '1997', 'name': 'Mary Jenkins', 'Location': 'London'}
{'email': 'jamie@example.com', 'birthyear': '1987', 'name': 'Jamie Smith', 'Location': 'Manchester'}
{'email': 'john@example.com', 'birthyear': '1998', 'name': 'John', 'Location': 'Manchester'}
"""
CSV 쓰기
csv.writer
# 파이썬에서 csv 파일을 다루기 위해 모듈 import
import csv
csv_path = "sample2.csv"
# csv 파일을 쓸 때는 newline='' 옵션을 줘서 중간에 공백 라인이 생기는 것을 방지합니다.
csv_file = open(csv_path, "a", encoding="utf-8", newline='')
# 파일 객체를 인수로 받아들이고 writer 객체를 반환
# writer 객체의 writerow() 메서드를 사용하여 각 행을 쓸 수 있다
csv_writer = csv.writer(csv_file)
# csv에 데이터를 추가합니다.
csv_writer.writerow(["lee@sparta.com", '1989', "lee", "Seoul"])
csv_file.close()
csv_file = open(csv_path, "r", encoding="utf-8")
csv_data = csv.reader(csv_file)
for i in csv_data:
print(i)
csv_file.close()
# result output
"""
...
['lee@sparta.com', '1989', 'lee', 'Seoul'] # 추가 된 행
"""
다음 주 예고
• 데코레이터
• itertools & Collections