혼공파 64 ~ 65 강
1. 기본 파일 처리
# 파일 처리
# 읽기 처리 / 쓰기 처리
# (1) 스트림 연결(stream)
## 파일 = open("경로", "모드")
## w 쓰기 모드, a 추가해서 쓰기 모드, r 읽기 모드
파일 = open("test.txt", "r")
# (2) 스트림을 통해 데이터 통신
문자열 = 파일.read()
print(문자열)
# (3) 스트림 해제
파일.close()
# with as 구문 스트림이 구문이 끝나면 해제된다.
with open("test.txt", "r") as 파일:
문자열 = 파일.read()
print(문자열)
# 파일이 없어도 w 모드에서는 파일이 생성된다.
# 새로 실행하면 기존 내용은 지우고 새로 입력한 내용이 들어간다.
# a 모드에서는 뒤에 내용이 추가 된다.
with open("a.txt", "w") as 파일:
파일.write("안녕하세요")
# 입력 데이터 누적 프로그램
파일 = open("data.txt", "r")
데이터 = 파일.read()
if 데이터 != "":
print(데이터.strip().split("\n"))
파일.close()
문자열 = input("> 데이터를 입력해주세요: ")
파일 = open("data.txt", "a")
파일.write(문자열.strip() + "\n")
파일.close()
2. CSV 파일 읽고 쓰기
# 파이썬
# 인공지능 개발 or 데이터 분석
# Comma Separator Values (CSV 데이터)
# : 콤마로 구분되어 나열된 데이터
# BMI 데이터 만들기
# 이름,키,몸무게 [Header]
# 랜덤하게 1명의 키와 몸무게 만들기
import random
한글 = list("가나다라마바사아자차카타파하")
파일 = open("human.txt", "w")
파일.write("이름,몸무게,키\n")
for i in range(1000):
이름 = random.choice(한글) + random.choice(한글)
몸무게 = random.randrange(40, 120)
키 = random.randrange(140, 200)
파일.write(f"{이름}, {몸무게}, {키}\n")
파일.close()
# print("{},{},{}".format(이름, 몸무게, 키))
# print(",".join([이름, str(몸무게), str(키)]))
# CSV 파일을 읽어와서 BMI를 구하고 데이터 만드는 프로그램
# 위의 BMI DATA 파일이 만들어지면 이어서
파일 = open("human.txt", "r")
for 한줄 in 파일:
이름,몸무게,키 = 한줄.strip().split(",")
if not 몸무게.strip().isdigit():
continue
몸무게 = int(몸무게.strip())
키 = int(키.strip())
bmi = 몸무게 / (키 / 100) ** 2
결과 = ""
if 25 <= bmi:
결과 = "과체중"
elif 18.5 <= bmi:
결과 = "정상체중"
else:
결과 = "저체중"
print("\n".join([
f"이름: {이름}",
f"몸무게: {몸무게}",
f"키: {키}",
f"BMI: {bmi}",
f"결과: {결과}", ""
]))
'Base > Python' 카테고리의 다른 글
19. 하노이의 탑 (재귀함수) (0) | 2023.03.10 |
---|---|
18. 이터러블/이터레이터/제너레이터 함수와 표현식 / 가독성 / 유지보수성 / 깊이우선탐색트리 알고리즘 구현 / (1) | 2023.03.10 |
16. 콜백함수 / map/filter 함수 / 람다 key 키워드 매개변수 (0) | 2023.03.03 |
15. 튜플/ 이뮤터블 자료 / 뮤터블 자료 (0) | 2023.03.03 |
14. 재귀함수 / 피보나치수열 / 조기리턴과 리스트 평탄화 (0) | 2023.03.01 |
댓글