본문 바로가기
일/Python

Python) 학습 - 기본5일차(파일 입출력, 모듈)

by 멜랑멀리 2022. 12. 22.
SMALL

[ 15_파일 입출력 ]

# 파일 열고 닫기
# open (파일명, 모드)

f= open("/content/test.txt","tr") # t(text), r(read) <- 순서 상관 없음.

#파일 읽기 1. read: 파일의 모든 내용을 읽어와 문자열로 반환. (전체 내용을 읽어옴.)
contents = f.read()

print(contents)

#사용이 끝난 파일은 반드시 닫아주어야함.
f.close()



# 파일 열고 닫기
# open (파일명, 모드)

f= open("/content/test.txt","tr") # t(text), r(read)

#파일 읽기 2. readline: 파일의 내용을 한 줄씩 읽어 옵니다.
while True:
    line = f.readline() # 개행을 포함해서 읽어옴.
    if (line==""): # 읽을 행이 없으면 빈문자열을 반환함.
        break
    #print(line) # print("apple\n","end="\n")
    print(line,end="") # print("apple\n","end="") # 개행 제거


#사용이 끝난 파일은 반드시 닫아주어야함.
f.close()



# 파일 열고 닫기
# open (파일명, 모드)

f= open("/content/test.txt","tr") # t(text), r(read)

#파일 읽기 2. for loop로 꺼내 올수 있음.
for line in f:
    print(line,end="") # print("apple\n","end="") # 개행 제거

#사용이 끝난 파일은 반드시 닫아주어야함.
f.close()



# 파일 열고 닫기
# open (파일명, 모드)
f= open("/content/test.txt","tr") # t(text), r(read)

#파일 읽기 3. readlines: 모든 행을 읽어와 리스트에 저장하여 반환
print(f.readlines()) # \n 개행이 각 list에 다 들어가 있음.

#사용이 끝난 파일은 반드시 닫아주어야함.
f.close()



# 파일 쓰기

# 파일을 쓰기 모드로 열때, 해당 파일이 없으면 만들어줌.
f = open("/content/hello.txt","tw") # w(write only)
f.write("hello")
f.close()


# 파일을 쓰기 모드로 열때, 해당 파일이 없으면 만들어줌.
f = open("/content/2dan.txt","tw") # w(write only)

for num in range (1,10):
    f.write(f"2 x {num} = { 2*num}\n")
#                                 ^--- 라인단위로 출력하려면 개행문자 추가 필수.    
f.close()


# 쓰기 모드로 파일을 열때 기존 파일이 존재한다면 해당 파일을 덮어씀.

# r
# w
# a (append) : 쓰기 모드로 열때 기존 파일이 존재한다면 덮어쓰는게 아니라 파일의 끝에 붙여쓰는 것. 
#              원본 파일 손상을 방지할수 있음
# x (eXclusive) : 파일이 있으면, 덮어쓰는게 아니라 오류가 발생함.


# with 블럭을 사용하여 파일을 열 경우,
# 해당 블럭을 벗어나면 파일을 자동으로 닫아줌.
with open("test.txt","tr") as f:
    print(f.read())
# <- 블럭을 빠져나가는 시점에서 close 함수가 자동으로 호출됨.

 

[ 17_module_package ]

 

# 모듈: 변수나 함수 또는 클래스를 모아놓은 단순 파일

# math.py <- 수학 모듈

# 1. 모듈 불러오기

import math # <- 확장자를 제외한 모듈명만 사용.

# print(pi) #Error

# 모듈 안의 요소를 사용하려면 반드시 모듈명과 함께 사용해야 함.
print(math.pi)
print(math.factorial(5))




# 이전의 방법은 모듈명이 긴경우, 코드가 복잡해지고 사용하기 불편.
# 파이썬에서는 모듈명에 별칭을 부여할수 있음.

# import numpy as np
# import pandas as pd

import math as m

print(m.pi)
print(m.factorial(5))

# 모듈의 특정 요소를 직접 임포트 할수 있음.
from math import pi # as mp # 별칭도 가능.
from math import factorial # as mf # 별칭도 가능.

print(pi)
print(factorial(5))



# 쉼표를 사용하면 한줄로 처리가능.
from math import pi, factorial

print(pi)
print(factorial(5))
# print(e) # Error 요소를 import 하지 않음


# 모듈안의 모든 요소를 직접 임포트할수 있음.
from math import *

print(pi)
print(factorial(5))
print(e)


# 요소도 별칭 가능.
from math import factorial as fac
from math import pi as p

print(fac(5))
print(p)


# 쉼표를 사용하면 한줄로 사용가능. 
from math import factorial as fac, pi as p

print(fac(5))
print(p)


# 모듈의 요소 확인
dir(math)

# package: 모듈을 묶어놓은 폴더
# import 폴더이름.모듈이름.요소 이름 형태로 접근.
LIST