Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- css
- width속성
- 임베디드
- RGB
- html 태그
- i 태그
- sup태그
- html
- sub태그
- padding 속성
- tag html
- id 선택자
- 아두이노
- background-color 속성
- RGBA
- go live
- not 의사클래스
- Checked 의사 클래스
- Live Server
- 일반 형제 결합자
- iframe
- br 태그
- 전체 선택자
- 자식결합자
- reveal in file explorer
- 인접 형제 결합자
- iframe 태그
- focus 의사클래스
- html tag i
- height속성
Archives
- Today
- Total
so woon!
python_13일차 본문
## CSV 파일 입출력 ##
# csv 파일 읽기 #
student_list = [] # 최종 결과를 담을 빈 리스트를 만든다.
with open('학생명단.csv', 'rt') as file:
file.readline() # (제목 줄['학번~연락처'] ->지워진다.) 변수에 안담음. 그대로 날라감.
while True:
line = file.readline() # 한줄씩 읽어서 line 리스트에 담는다.
if not line: # 더이상 라인이 없을 때까지 반복
break
student = line.split(',') # , 로 구분된 것을 분리하여 student에 담는다.
student_list.append(student) #결과 리스트에 분리한 student 내용을 담는다.
print(student_list) #결과출력
============실행결과===============
[['10101', '김승별', '서울시 영등포구', '010-1111-1111\n'], ['10102', '박나라', '서울시 여의도구', '010-2222-2222\n'], ['10103', '최태욱', '서울시 강남구', '010-3333-3333\n'], ['10104', '민기홍', '인천시 계양구', '010-4444-4444\n'], ['10105', '이명숙', '경기도 과천시', '010-5555-5555\n']]
## 247page)
member_list = []
with open('회원명단.csv', 'rt') as file:
file.readline() #제목줄을 삭제함.
while True:
line = file.readline()
if not line:
break
member = line.split(',') # , 로 구분된 것을 분리하여 member에 담는다.
member[0] = member[0].strip('"') #0번째 강나라 이름에 있는"를 제거
member_list.append(member)
print(member_list)
============실행결과===============
[['강나라', '필라테스', '25일\n'], ['나유라', '수영', '25일\n'], ['이상기', '헬스', '15일\n']]
## csv 모듈로 CSV 파일 생성하기 ##
import csv # scv 파일을 쉽게 관리하기 위한 모듈을 불러온다.
with open('차량관리.csv', 'w', newline='') as file:
csv_maker = csv.writer(file, delimiter=',') # 쓰기 객체 생성
# delimiter는 ,로 나누어지게 만들것이다는 뜻
csv_maker.writerow([1, '08러1234', '2020-10-20, 14:00'])
csv_maker.writerow([2, '025다1234', '2020-10-20, 14:10'])
csv_maker.writerow([3, '28하1234', '2020-10-20, 14:20'])
print('차량관리.csv 파일이 생성되었습니다.')
============실행결과===============
차량관리.csv 파일이 생성되었습니다.
## csv 모듈로 CSV 파일 읽기 ##
import csv
with open('차량관리.csv', 'r', newline='') as file:
csv_reader = csv.reader(file, delimiter=',', quotechar='"') #읽기 객체 생성
for line in csv_reader:
print(line)
============실행결과===============
['1', '08러1234', '2020-10-20, 14:00']
['2', '025다1234', '2020-10-20, 14:10']
['3', '28하1234', '2020-10-20, 14:20']
## 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 으로 인코딩 #json string에 담음 #언어를 변환
with open('dictList.json', 'w') as file:
file.write(json_string) #json 으로 인코딩한 내용을 json파일에 쓴다.
print('dictList.json 파일이 생성되었습니다.')
============실행결과===============
dictList.json 파일이 생성되었습니다
## JSON 파일 읽기 ##
import json
with open('dictList.json', 'r') as file:
json_reader = file.read() #파일 전체 읽어 jason_reader에 저장 #아직 제이슨임 파이썬이 아님
dict_list = json.loads(json_reader) #loads를 써서 파이썬화 시킴
print(dict_list)
for dic in dict_list:
print('이름 : {}'.format(dic['name'])) #name에 해당하는 값
print('나이 : {}'.format(dic['age']))
print('키 : {}'.format(dic['spec'][0]))
print('몸무게 : {}'.format(dic['spec'][1]))
print()
============실행결과===============
[{'name': 'james', 'age': 20, 'spec': [175.5, 70.5]}, {'name': 'alice', 'age': 21, 'spec': [168.5, 60.5]}]
이름 : james
나이 : 20
키 : 175.5
몸무게 : 70.5
이름 : alice
나이 : 21
키 : 168.5
몸무게 : 60.5
### 예외 처리 ###
## 예외 종류 ##
# SyntaxError : 잘못된 문법
print('test)
print('Hello'))
# NameError : 참조 변수 없음
a = 10
b = 15
print(c)
# ZeroDivisionError : 0 나누기 에러
print(10 / 0)
# IndexError : 인덱스 범위 오버
x = [1, 2, 3]
print(x[4])
# KeyError : 잘못된 key
dic = {'name':'홍길동', 'age':20}
print(dic['hobby']) #에러
print(dic.get('hobby')) #에러 안나고 None을 반환
# ValueError : 참조 값이 없을 때
x = [1, 5, 9]
x.remove(100) #값 100을 지워라.
# TypeError : 자료형에 맞지 않는 연산을 수행할 경우
x = [1, 2] #리스트
y = (1, 2) # 튜플
z = 'Hello' #문자열
print(x + y + z) #서로 다른 자료형이기 때문에 성립 안됨
## 모든 예외를 처리하는 방식 (try ~ except) ##
try:
num = int(input('정수를 입력하세요 : ')) # 예외가 발생할 가능성이 있는 코드
print('원의 반지름 :', num)
print('원의 둘레 :', num * 3.14 * 2)
print('원의 넓이 :', num * num * 3.14)
except: # 예외 발생시
print('정수를 입력하지 않았습니다!') # 정수를 입력하지 않으면 에러가 뜨지 않고 메시지 출력
============실행결과===============
정수를 입력하세요 : a
정수를 입력하지 않았습니다!
## 297page)
try:
height = input('키를 입력하세요 >>> ') # 문자열 형태로 입력받음
height = round(height) # 반올림(예외 발생)
print('입력하신 키는 {}cm로 처리됩니다.'.format(height))
except:
print('예외가 발생했습니다.')
============실행결과===============
키를 입력하세요 >>> 154.3
예외가 발생했습니다.
## 특정 예외만 처리하는 방식 ##
try:
a = int(input('제수를 입력하세요 : '))
b = int(input('피제수를 입력하세요 : '))
print('{} / {} = {}'.format(a, b, a/b))
except ZeroDivisionError:
print('0으로 나눌 수 없습니다.')
except ValueError:
print('정수만 입력할 수 있습니다.')
except Exception: #예외의 엄마 #모든 예외의 기본 #예상치 못한 예외들 처리
print('알 수 없는 예외가 발생했습니다.')
============실행결과===============
제수를 입력하세요 : 3
피제수를 입력하세요 : 0
0으로 나눌 수 없습니다.
## 예외 메세지 처리하기 ##
a = [10, 20, 30, 40, 50]
try:
print(a[10]) # 5개 있고 4번까지밖에 없음
except IndexError as e: # e라고 부르겠다
print(e) # 예외 메세지 출력
============실행결과===============
list index out of range
## else 문과 finally 문 ##
else : 예외 발생하지 않고 정상적으로 처리될 때 실행되는 구문
finally : 예외 처리 구문에서 가장 마지막에 사용할 수 있는 구문
예외 발생 여부와 관계없이 무조건 실행해야 할 경우에 사용
try 는 단독으로는 사용할 수 없으며,
반드시 except 또는 finally 와 함께 사용해야 함
else 는 반드시 except 뒤에 사용해야 함
## ex)
try:
num = int(input('정수를 입력하세요 : '))
except:
print('정수를 입력하지 않았습니다.')
else:
print('원의 반지름 :', num) # 예외가 발생하지 않았을 때 실행(정상적으로 작동)
print('원의 둘레 :', num * 3.14 * 2)
print('원의 넓이 :, num * num * 3.14')
finally:
print('일단 프로그램이 끝이 났습니다!')
============실행결과===============
정수를 입력하세요 : 가
정수를 입력하지 않았습니다.
일단 프로그램이 끝이 났습니다!
'Python > 개념정리' 카테고리의 다른 글
python_15일차 (1) | 2022.08.24 |
---|---|
python_14일차 (0) | 2022.08.22 |
python_12일차 (0) | 2022.08.12 |
python_11일차 (0) | 2022.08.10 |
python_10일차 (0) | 2022.08.10 |
Comments