본문 바로가기

프로그래밍 공부/Python

[파이썬 기초 5강] 입출력(표준입출력, 다양한 출력포맷, 파일입출력, pickle, with) + 업무자동화_ 보고서 50개 만들기

반응형

 

 

 

안녕하세요

27년차 진로탐색꾼 조녁입니다!! 

오늘은 파이썬에서 입출력 방식에 대해서 공부해봤습니다.

 

 

파이썬 설치 방법은 아래 글 참고해주세요! (주피터 노트북 환경 + 구글 클라우드 사용이 가능한 Colab 환경 추천드립니다.)

jonhyuk0922.tistory.com/3

 

[코드프레소 X AI 양재허브] AI/ML 기초교육 1일차

안녕하세요. 26년차 진로탐색꾼 조녁입니다! 이번에 제가 탐색해볼 영역은 AI/ML 분야입니다~. 좋은 기회로 온라인 4일+ 오프라인 4일 강의를 듣게 되어 매일 배운 부분들 복습하면서 남기려 합니

jonhyuk0922.tistory.com

 

 

파이썬에 대한 기초적인 내용이지만 기억하면 좋을 것들이니 가볍게 한 번 봐주세요~ !

모든 코드는 아래 git_hub 에 올려둔 Colab 노트북 참고 부탁드려요.

gist.github.com/jonhyuk0922/e1335557b3e00a69e21191e42cb9ed34#file-_-ipynb

 

나도코딩_파이썬 기본편(입출력)

나도코딩_파이썬 기본편(입출력). GitHub Gist: instantly share code, notes, and snippets.

gist.github.com

*궁금하신 내용은 댓글에 질문 남겨주세요! 

 

 

 

파이썬 기초 5강 내용

1. 표준입출력

2. 다양한 출력포맷

3. 파일입출력

4. pickle

5. with

6. 업무자동화_ 보고서 50개 만들기

 

 

1. 표준입출력

 1) 출력 시에 end 값은 자동으로 줄바꿈인데, end 에 값을 지정해주면 줄바꿈없이 이어서 출력된다.

 

print("Python","Java",sep=",", end="?") #보통 end 값은 줄바꿈인데 "?"를 사용하면서 줄바꿈 없이 출력함
print("무엇이 더 재밌을까요?")

>> Python,Java?무엇이 재밌을까요?

 

2) 표준출력으로 처리할 떄랑 표준에러로 처리할 때랑 보이는 출력은 같다.

 

import sys
print("Python","Java",file=sys.stdout) #표준출력으로 처리
print("Python","Java",file=sys.stderr) #표준에러로 처리

 

3) print 문에서 str값에 .ljust(x) or .rjust(x) 를 사용하면 넣어주면 x칸만큼 차지하는 좌측 정렬 or 우측 정렬로 출력된다.

 

#시험 성적
scores = {"수학":0,"영어":50,"코딩":100}
for subject, score in scores.items():
  print(subject.ljust(8), str(score).rjust(4) ,sep=":")

 

4) print문에서 str값에 .zfill(x) 를 사용하면 str 길이가 x만큼 늘어난다. (빈 공간은 앞에서부터 0으로 채워진다.)

 

#은행 대기순번표
#001, 002, 003, ...
for num in range(1,21):
  print("대기번호 : " + str(num).zfill(3))

 

5) input으로 넣으면 str으로 저장된다.(int도 동일)

 

#표준입력
answer = input("아무 값이나 입력하세요 : ") #사용자 입력을 통한 값은 항상 문자열로 저장된다.
print(type(answer))
print("입력하신 값은 " + answer + "입니다")

 

2. 다양한 출력포맷

1)

# 빈 자리는 빈공간으로 두고, 오른쪽 정렬을 하되, 총 10자리 공간을 확보
print(f"{500: >10}")

>>>                  500

 

 

2)

#양수일 떈 +로 표시, 음수일 떈 -로 표시
print(f"{500: >+10}")
print(f"{-500: >-10}")

>>>                 +500

>>>                 -500

 

 

3) 

#왼쪽 정렬하고, 빈칸으로 _로 채움
print(f"{500:_<10}")

>> 500__________

 

 

4) 

#3자리 마다 콤마를 찍어주기
print(f"{1000000:,}")
#3자리 마다 콤마를 찍어주기, +,-부호도 붙이기
print(f"{10000000:+,}")
print(f"{-10000000:-,}")
#3자리 마다 콤마를 찍어주기, +,-부호도 붙이기, 자릿수 확보하기
#돈이 많으면 행복하니까 빈자리는 ^로 채워주기
print(f"{1000000000000:^<+30,}")

 

 

 

5)

# 소수점 출력
print(f"{5/3:f}")
# 소수점을 특정 자리수 까지만 표시
print(f"{5/3:.2f}")

>> 1.66667

>>1.67

 

 

3. 파일입출력

 1) 파일 생성 및 내용입력 , 여기서 꼭 " score_file.close() " 마지막에 닫아줘야 한다.

여기서 "w" 는 write이다.

score_file = open("score.txt", "w",encoding="utf8")
print("수학 : 0",file=score_file)
print("영어 : 50",file=score_file)
score_file.close()

 

 

2) file.write은 따로 줄바꿈 기능이 없어서 추가해줘야한다.

여기서 "a" 는 append이다.

score_file = open("score.txt","a",encoding="utf8")
score_file.write("과학 : 80")      #file.write은 따로 줄바꿈 기능이 없다.
score_file.write("\n코딩 : 100")
score_file.close()

 

 

3) 파일 읽어주기 , 마찬가지로 open과 close 사용한다.

여기서 "r"은 예상과 같이 read다.

score_file = open("score.txt","r",encoding="utf8")
print(score_file.read())
score_file.close()

 

 

4) readline으로 한줄씩 읽으면 한칸씩 띄어서 읽는다.

score_file = open("score.txt","r",encoding="utf8")
print(score_file.readline()) #줄별로 읽기, 한 줄 읽고 커서는 다음 줄로 이동
print(score_file.readline())
print(score_file.readline())
print(score_file.readline())
score_file.close()

 

 

 

5)  while문을 통해서 줄별로 읽기 (결과는 위와 동일) 

score_file = open("score.txt","r",encoding="utf8")
while True:
  line = score_file.readline()
  if not line:
    break
  print(line,#end=""
  )
score_file.close()

 

 

6) for문을 통해서 줄별로 읽기(결과 동일)

score_file = open("score.txt","r",encoding="utf8")
lines =score_file.readlines() #list 형태로 저장
for line in lines:
  print(line, #end="")
score_file.close()

#type(lines)

 

 

4.pickle

1) pickle 형태로 파일 열고 닫기 , 이 떄도 꼭 닫아줘야하고 특별히 ,"wb" 파라미터를 필수로 넣어줘야한다.

import pickle
profile_file = open("profile.pickle","wb") #:w : write , b : binary (필수!)
profile = {"이름":"박명수", "나이":30, "취미":["축구","골프","코딩"]}
print(profile)
pickle.dump(profile,profile_file) #profile 에 있는 정보를 file에 저장
profile_file.close()

 

 

2) pickle 읽기 , 파일에서 로드해서 변수 지정 후 읽기

import pickle
profile_file = open("profile.pickle","rb")
profile = pickle.load(profile_file) #file에 있는 정보를 profile 에 불러오기
print(profile)
profile_file.close()

 

 

5. with

1) with 사용해서 pickle 파일 읽기 , "rb" 파라미터 필수 , *닫아줄 필요 없다.

import pickle
with open("profile.pickle","rb") as profile_file:
  print(pickle.load(profile_file))

 

 

2) with 로 파일 생성하기 , 역시 닫아줄 필요없다.

with open("study.txt", "w", encoding="utf8") as study_file:
  study_file.write("파이썬을 열심히 공부하고 있어요")

 

 

3) with로 파일 읽기

with open("study.txt", "r", encoding="utf8") as study_file:
  print(study_file.read())

 

 

6. Quiz : 업무자동화_ 보고서 50개 만들기

 

 

스스로 풀어보신 후 아래로 가시길 추천드립니다 ㅎㅎ

 

*문제풀이 

: 1~50번째 보고서 파일 open , "w"해주고 이름은 nweek_file로 생성해준다.

내용을 작성할때, write함수는 줄바꿈이 없으므로 \n을 사용해준다.

 

 

정답코드

for n in range(1,51):
  with open(str(n) + "주차.txt","w",encoding="utf8") as nweek_file:
    nweek_file.write(f"- {n} 주차 주간보고 - ")
    nweek_file.write("\n부서 : ")
    nweek_file.write("\n이름 : ")
    nweek_file.write("\n업무 요약 :  ")

 

 

*본 포스팅은 유튜브 '나도코딩' 강의를 듣고 작성하였습니다.

특별히 긴 강의를 인프런이라는 사이트에서 파트별로 나눠서 제공해줘서 손쉽게 접할 수 있었습니다. 아래 링크 첨부하겠습니다.

www.inflearn.com/course/%EB%82%98%EB%8F%84%EC%BD%94%EB%94%A9-%ED%8C%8C%EC%9D%B4%EC%8D%AC-%EA%B8%B0%EB%B3%B8/dashboard

 

[무료] 파이썬 무료 강의 (기본편) - 6시간 뒤면 나도 개발자 - 인프런 | 강의

6시간. 여러분이 파이썬 개발자가 되는데 필요한 시간입니다. 핵심 내용만 선정 / 챕터마다 퀴즈 & 해설 / 실생활 기반 예제로 아주 쉽게 설명합니다. 그리고 완전 무료입니다., ★나도코딩님의

www.inflearn.com

 

반응형