name = input("이름 :") print(name) #이름 :김민준 #김민준
섭씨 온도를 화씨 온도로 변환하는 공식: F=(C∗1.8)+32
celsius = float(input("섭씨 온도 :")) fahrenheit = (celsius * 1.8) + 32 print("화씨 온도 :", fahrenheit) #섭씨 온도 :34.5 #화씨 온도 : 94.1
출력할 단을 입력
해당 단의 계산 결과 출력
i = int(input("출력할 단:")) for j in range(1,10): print("{0} X {1} = {2}".format(i, j, i*j)) #출력할 단:3 #3 X 1 = 3 #3 X 2 = 6 #3 X 3 = 9 #3 X 4 = 12 #3 X 5 = 15 #3 X 6 = 18 #3 X 7 = 21 #3 X 8 = 24 #3 X 9 = 27
print("Hello Python") print("안녕 파이썬") print(7) print(3.14) print([1,2,3]) print("Hello", "Python", sep="---") print(1,2,3) print(1, end= ' ') print(2, end= ' ') print(3, end= ' ') #Hello Python #안녕 파이썬 #7 #3.14 #[1, 2, 3] #Hello---Python #1 2 3 #1 2 3
[Lab] 구구단 출력
print() 함수를 사용하여 각 단마다 횡으로 출력
for i in range(2,10): for j in range(1,10): print("{0}X{1}={2}".format(i, j, i*j), end='\t') print() #2X1=2 2X2=4 2X3=6 2X4=8 2X5=10 2X6=12 2X7=14 2X8=16 2X9=18 #3X1=3 3X2=6 3X3=9 3X4=12 3X5=15 3X6=18 3X7=21 3X8=24 3X9=27 #4X1=4 4X2=8 4X3=12 4X4=16 4X5=20 4X6=24 4X7=28 4X8=32 4X9=36 #5X1=5 5X2=10 5X3=15 5X4=20 5X5=25 5X6=30 5X7=35 5X8=40 5X9=45 #6X1=6 6X2=12 6X3=18 6X4=24 6X5=30 6X6=36 6X7=42 6X8=48 6X9=54 #7X1=7 7X2=14 7X3=21 7X4=28 7X5=35 7X6=42 7X7=49 7X8=56 7X9=63 #8X1=8 8X2=16 8X3=24 8X4=32 8X5=40 8X6=48 8X7=56 8X8=64 8X9=72 #9X1=9 9X2=18 9X3=27 9X4=36 9X5=45 9X6=54 9X7=63 9X8=72 9X9=81
파일의 입출력 과정은 단계를 가짐
파일을 열고, 파일을 읽거나 쓰고, 파일을 닫는 순서
file.txt 파일
을 생성하고, 열고
닫기
f = open("file.txt", 'w') f = open("file.txt", 'r') f.close()
!ls file.txt #file.txt
write()
write()
를 이용하여 파일에 쓰기
f = open("file.txt", "w") f.write("Hello Python") f.close()
!cat file.txt #Hello Python
writelines()
writelines()
를 이용하여 list를 파일에 쓰기
list = ["One\n", "Two\n", "Three\n"] f = open("file.txt", 'w') f.writelines(list) f.close()
!cat file.txt #One #Two #Three
표준 입력 → 파일 쓰기
표준 입력을 input() 함수
를 통해 입력 받고, write() 함수
를 통해 파일에 쓰기
text = input("입력 :") f = open("file.txt", "w") f.write(text) f.close() # 입력 : 김민준
! cat file.txt # 김민준
text = [str(text + '\n') for text in input("여러 값 입력 : ").split()] f = open("file.txt", 'w') f.writelines(text) f.close() #여러 값 입력 : 1 2 3 4 5 6 7
! cat file.txt #1 #2 #3 #4 #5 #6 #7
x = "" text = "" while x != 'q': x = input("반복 입력 :") text += x + '\n' f = open("file.txt", 'w') f.writelines(text) f.close() #반복 입력 :1 #반복 입력 :2 #반복 입력 :3 #반복 입력 :4 #반복 입력 :q
! cat file.txt #1 #2 #3 #4 #q
구구단 결과를 파일에 쓰기
f = open("dan.txt", 'w') for i in range(2,10): for j in range(1,10): f.write("{0} X {1} = {2}\n".format(i,j,i*j)) else: f.write("\n") f.close()
!cat dan.txt #2 X 1 = 2 #2 X 2 = 4 #2 X 3 = 6 #2 X 4 = 8 #2 X 5 = 10 #2 X 6 = 12 #2 X 7 = 14 #2 X 8 = 16 #2 X 9 = 18 #9 X 1 = 9 #9 X 2 = 18 #9 X 3 = 27 #9 X 4 = 36 #9 X 5 = 45 #9 X 6 = 54 #9 X 7 = 63 #9 X 8 = 72 #9 X 9 = 81
텍스트 파일 예제
!echo "동해물과 백두산이 마르고 닳도록" > anthem.txt !echo "하느님이 보우하사 우리나라 만세" >> anthem.txt
readline()
readline()
를 이용하여 텍스트 파일을 라인 단위로 읽고 화면에 출력
f = open('anthem.txt', 'r') while True: line = f.readline() if not line: break print(line) f.close() #동해물과 백두산이 마르고 닳도록 # #하느님이 보우하사 우리나라 만세
readlines()
readlines()
를 이용하여 텍스트 파일의 여러 라인을 읽고 화면에 출력
f = open("anthem.txt", 'r') lines = f.readlines() print(lines) f.close() #['동해물과 백두산이 마르고 닳도록\n', '하느님이 보우하사 우리나라 만세\n']
read()
read()
를 이용하여 텍스트 파일을 읽고 화면에 출력
f = open("anthem.txt", 'r') data = f.read() print(data) f.close() #동해물과 백두산이 마르고 닳도록 #하느님이 보우하사 우리나라 만세
tell()
파일 포인터 위치 변경
f = open("anthem.txt", 'r') while True: print(f.tell()) line = f.readline() if not line: break print(line) f.close() #0 #동해물과 백두산이 마르고 닳도록 # #46 #하느님이 보우하사 우리나라 만세 # #92
seek()
파일 포인터 위치 이동
f = open("anthem.txt", 'r') f.seek(46) line = f.readline() print(line) f.seek(0) line = f.readline() print(line) f.close() #하느님이 보우하사 우리나라 만세 # #동해물과 백두산이 마르고 닳도록
with 문
항상 파일을 open() 함수
로 열고, close() 함수
로 닫아야 하는 일을 자동으로 처리
with문
을 이용하면 with 블록 내에서 파일을 열고 벗어나면 파일을 닫음
f = open("file.txt", 'w') f.write("Hello Python") f.close()
with open("file.txt", 'w') as f: f.write("Hello Python")n
사용자로부터 표준 입력 받음
받은 내용을 계속 파일 쓰기
f = open("file.txt", 'w') line = "" while True: line = input() if not line: break f.writelines(line + '\n') f.close()
!cat file.txt
이진 파일(이미지) 예제
from google.colab import files files.upload()
!ls #1b45499a30f6508fb335481c36c2a448.jpg anthem.txt dan.txt file.txt pytorch.jpg sample_data
input = open('pytorch.jpg', "rb") output = open("pytorch_copy.jpg", "wb") while True: fp = input.read(1) if not fp: break output.write(fp) input.close() output.close()
!ls #1b45499a30f6508fb335481c36c2a448.jpg dan.txt pytorch_copy.jpg #sample_data #anthem.txt file.txt pytorch.jpg
디렉토리 생성
디렉토리와 파일을 다루는 다양한 함수를 제공하는 shutil와 os 라이브러리
mkdir()
: 디렉토리 생성
import os import shutil os.mkdir('test') os.mkdir('test/1') os.mkdir('test/2') os.mkdir('test/3')
!ls #1b45499a30f6508fb335481c36c2a448.jpg dan.txt pytorch_copy.jpg #sample_data #anthem.txt file.txt pytorch.jpg test
!ls test #1 2 3
shutil.copy()
: 파일 복사
shutil.copytree()
: 디렉토리 전체 복사
import shutil shutil.copy('pytorch.jpg', 'pytorch_copy2.jpg') #pytorch_copy2.jpg
!ls #1b45499a30f6508fb335481c36c2a448.jpg dan.txt pytorch_copy2.jpg #pytorch.jpg test #anthem.txt file.txt pytorch_copy.jpg sample_data
import shutil shutil.copytree('test', 'test2') #`test2`
!ls #1b45499a30f6508fb335481c36c2a448.jpg dan.txt pytorch_copy2.jpg #pytorch.jpg test #anthem.txt file.txt pytorch_copy.jpg sample_data test2
!ls test2 #1 2 3
디렉토리 및 파일 확인
isdir()
: 디렉토리 존재 확인
isfile()
: 파일 존재 확인
exists()
: 디렉토리/파일 존재 확인
import os.path print(os.path.isdir('test')) print(os.path.isdir('test/1')) print(os.path.isdir('test/4')) print(os.path.isfile('pytorch.jpg')) print(os.path.isfile('pytorch_copy.jpg')) print(os.path.isfile('pytorch_copy2.jpg')) print(os.path.exists('test2')) print(os.path.exists('test2/1')) print(os.path.exists('test2/4')) #True #True #False #True #True #True #True #True #False
디렉토리 목록 보기
os.walk():
디렉토리 목록 보기
import os for dir_name, dir_list, file_names in os.walk('./'): for file_name in file_names: print(os.path.join(dir_name, file_name)) #./1b45499a30f6508fb335481c36c2a448.jpg #./pytorch_copy2.jpg #./pytorch_copy.jpg
디렉토리 및 파일 삭제
os.remove()
: 파일 삭제
shutil.rmtree()
: 디렉토리 안에 모든 파일/디렉토리 삭제
import os os.remove('pytorch_copy2.jpg') os.remove('pytorch_copy.jpg')
!ls #1b45499a30f6508fb335481c36c2a448.jpg dan.txt pytorch.jpg test #anthem.txt file.txt sample_data test2
import shutil shutil.rmtree('test') shutil.rmtree('test2')
!ls #1b45499a30f6508fb335481c36c2a448.jpg anthem.txt dan.txt file.txt pytorch.jpg sample_data
파일 크기
os.path.getsize()
: 파일의 크기를 바이트 단위로 출력
import os.path print(os.path.getsize('pytorch.jpg')) #12365
파일 압축
import zipfile comp = zipfile.ZipFile('new.zip', 'w') comp.write('pytorch.jpg') comp.close()
!ls #1b45499a30f6508fb335481c36c2a448.jpg dan.txt new.zip sample_data #anthem.txt file.txt pytorch.jpg
decomp = zipfile.ZipFile('new.zip', 'r') decomp.extractall('new') decomp.close()
!ls new #pytorch.jpg