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()