3-1/Python
11주차-file read/ write
Donghun Kang
2024. 5. 17. 00:07
- 리스트/ 튜플 언패킹 (*)
리스트 앞에 *(에스터리스크)를 붙이면 언패킹된다.
튜플에 *을 붙여도 언패킹
여러 개의 숫자를 각 줄을 출력하는 함수
리스트와 리스트 언패킹을 입력으로 넣으면
- 딕셔너리 언패킹 (**)
EX) 개인정보를 출력하는 함수
딕셔너리 언패킹 ** 사용
정리) 리스트/ 튜플 언패킹(*), 딕셔너리 언패킹(**)
- 함수 & 딕셔너리 언패킹
- keyword argumets
- 파일 입출력
1. open()함수로 파일을 열어 파일객체 생성
2. 파일객체를 이용해 입력 또는 출력을 수행
3. 파일객체의 close() 메소드로 파일을 닫음
- 파일 열기 - open()함수
여는데 성공하면 파일객체/ 실패하면 None 반환
- 파일 쓰기 - open() 함수의 열기 모드: w
해당 파일이 없으면 새로 만들고, 있으면 덮어씀
EX)
(\n을 붙이지 않으면 문자열이 모두 한줄에 붙어서 저장)
(마지막 줄 개행이 되어 빈줄이 하나 더 생김)
-반복문 사용
- f문자열 포매팅
중괄호{ } 안에 변수를 계산식과 함계 사용 가능, 딕셔너리 사용 가능
>>> a = 3.141592
>>> f'{a:0.4f}' #소수점 4자리 까지 표현
'3.1416' #반올림!!
>>> f'{a:10.4f}' #소수점 4자리 까지 표현 + 총 자리수 10자리
' 3.1416' #반올림!!
=> 소수점 표현(반올림!!)
- 파일 읽기 - open() 함수의 열기 모드: r
1. 파일객체.read(): 파일 내용 전체를 문자열로 돌려줌
2. 파일객체.readline(): 파일의 내용을 한 줄씩 순차적으로 읽음
(더 이상 읽을 줄이 없으면 빈문자열("")을 반환)
(end옵션 추가 안할 시) 한 줄씩 더 개행 되어 출력된다.
-모든 줄을 읽어 화면에 출력
3. 파일객체.readlines(): 모든 줄을 읽어 각각의 줄을 요소로 갖는 "리스트"를 반환
개행문자(\n)까지 데이터로 들어간다.
(strip()를 사용하여 개행문자를 제거)
*lin.strip('loP')를 사용하면?
f = open('hello.txt','r')
data = f.readlines()
for line in data:
line = line.strip('loP')
print(line)
f.close()
(출력이 한줄씩 개행되어 출력된다.)
- 파일추가 - open()의 열기모드: a
쓰기모드(w)로 파일을 열면 이미 존재하던 파일의 내용은 사라짐
원래 값을 유지하면서 새로운 값 추가: append모드로 파일을 연다.
*자동으로 파일 객체 닫기
EX) close() 메소드 사용하지 않아도 자동으로 닫힘
- CSV파일
1. CSV파일 읽기
import csv
f = open('file_name.csv','r',encoding='utf-8')
rdr = csv.reader(f)
for line in rdr:
print(line)
f.close()
2. CSV파일 쓰기
import csv
f = open('output.csv','w',encoding='utf-8')
wr = csv.writer(f)
wr.writerow([1,"Alice",True])
wr.writerow([2,"Bob",False])
f.close()
3. CSV파일을 딕셔너리로 읽기
import CSV
with open('./file_name.csv') as csvfile:
rdr = csv.DictReader(csvfile)
for i in rdr:
print(i)
- Image 파일
1. Image 파일 읽기 (Python Imaging Library)
from PIL import Image
im = Image.open('apple.jpg')
im.show()
2. Image 파일 읽기 (matplotlib)
import matplotlib.pyplot as plt
im = plt.imread('apple.jpg')
plt.imshow(im)
plt.show()
3. Image 파일 읽기 (Python OpenCV)
import cv2
im = cv2.imread('apple.jpg')
cv2.imshow('apple',im)
cv2.waitKey(0)
cv2.destroyAllWindows()