<내용정리>
- 관련 파일
- 본문
### 파일 입출력의 활용
## 파일 복사
# p243
buffer_size = 1024 # 한번에 읽어들이는 데이터의 크기(1kb == 1024byte)
with open('Section14/code.mp4', 'rb') as source: # 동영상을 바이너리 모드로 읽는다
with open('Section14/code2.mp4', 'wb') as copy: # 동영상을 바이너리 모드로 쓴다
while True:
buffer = source.read(buffer_size)
if not buffer:
break
copy.write(buffer)
print('code.mp4 파일이 복사되었습니다')
## csv 파일 읽기
# # p246
student_list= [] # 최종결과를 담을 빈 리스트 생성
with open('Section14/학생명단.csv', 'rt') as file:
file.readline() # 제목 줄(삭제)
while True:
line = file.readline()
if not line:
break
student = line.split(',') # ,로 구분된 것을 분리하여 student에 담는다
student_list.append(student)
print(student_list)
# p247
member_list = []
with open('Section14/회원명단.csv', 'rt') as file:
file.readline()
while True:
line = file.readline()
if not line:
break
member = line.split(',')
member[0] = member[0].strip('"')
member_list.append(member)
print(member_list)
# csv 모듈로 csv 파일 생성하기
import csv
with open('Section14/차량관리.csv', 'w', newline='') as file:
csv_maker = csv.writer(file, delimiter=',') # 쓰기 객체 생성
csv_maker.writerow([1, '08러1234', '2020-7-20, 14:00'])
csv_maker.writerow([2, '25다1234', '2020-11-24, 14:10'])
csv_maker.writerow([3, '28하1234', '2020-10-28, 14:20'])
print('차량관리.csv 파일이 생성되었습니다')
# csv 모듈로 csv 파일 읽기
# p248
import csv
with open('Section14/차량관리.csv', 'r', newline='') as file:
csv_reader = csv.reader(file, delimiter=',', quotechar='"') # 읽기 객체 생성
for line in csv_reader:
print(line)
## json 파일 입출력
# json 파일 생성
import json
dict_list = [
{
'name':'james',
'age':'20',
'spec':[175.5, 70.5]
},
{
'name':'alice',
'age':'21',
'spec':[168.5, 60.5]
}
]
json_string = json.dumps(dict_list) # json으로 인코딩
with open('Section14/dictList.json', 'w') as file:
file.write(json_string)
print('dictList.json 파일이 생성되었습니다')
# json 파일 읽기
# p253
import json
with open('Section14/dictList.json', 'r') as file:
json_reader = file.read()
dict_list = json.loads(json_reader) # 파이썬으로 변환
print(dict_list)
for dic in dict_list:
print(f'이름 : {dic[name]}')
print(f'나이 : {dic[age]}')
print(f'키 : {dic[spec][0]}')
print(f'몸무게 : {dic[spec][1]}')
### 클래스와 객체1
## 객체 지향 프로그래밍 (0bject-Oriented Programming, OOP)
-문제를 작게 나누어 객체(Object)를 만들고
객체를 조합해서 문제를 해결하는 방식
-복잡한 문제를 처리하는데 유용하며 기능을 개선하고 발전시킬 때도
해당 클래스만 수정하면 되므로 유지보수에 효율적
-클래스(class) : 똑같은 무엇인가를 계속해서 만들어 낼 수 있는 설계도(ex.와플기계)
-객체(object) : 와플기계에서 만들어낸 와플, 각각의 객체마다 고유의 특성을 가짐
파이썬에서는 문자, 정수, 실수, 함수 등 모두 객체이다.
-인스턴스(instance) : 특정 객체가 어떤 클래스의 객체인지 관계 위주로 설명할 때 사용
클래스와 연관지어 객체를 말할 때 인스턴스라고 한다
-메서드(method) : 클래스 안에서 구현된 함수
<형식>
class 클래스이름: # 파이썬에서는 클래스 이름을 주로 대문자로 시작
def 메서드이름(self, 매개변수): # self : 메서드를 호출한 객체가 자동으로 전달되는 매개변수
self.속성 = 값 # 인스턴스변수 == 매개변수
인스턴스이름 = 클래스이름() # 인스턴스 생성
인스턴스이름.메서드이름() # 메서드 호출(함수 호출)
##인스턴스 변수와 인스턴스 메서드
# ex)
class Person: # 클래스 정의
def who_am_i(self, name, age, tel, address): # 인스턴스 메서드 정의
self.name = name # 인스턴스 변수 = 매개변수
self.age = age
self.tel = tel
self.address = address
boy = Person() # 객체(인스턴스) 생성
boy.who_am_i('john', '20', '010-1234-5678', 'toronto') # 함수(메서드) 호출
print(boy.name) # boy == self
print(boy.age)
print(boy.tel)
print(boy.address)
print()
girl = Person()
girl.who_am_i('alice', '21', '010-9876-5432', 'chicago')
print(girl.name)
print(girl.age)
print(girl.tel)
print(girl.address)
'학부 자료 > Python' 카테고리의 다른 글
[Python] 파이썬 기초 14/20, 클래스 상속, 예외처리 (1) | 2023.11.07 |
---|---|
[Python] 파이썬 기초 13/20, 클래스와 객체 (2) | 2023.11.07 |
[Python] 파이썬 기초 11/20, 모듈, 파일 입출력 (2) | 2023.11.07 |
[Python] 파이썬 기초 10/20, 람다 표현식(lambda expression) (0) | 2023.11.07 |
[Python] 파이썬 기초 9/20, 사용자 함수 (1) | 2023.11.07 |