강의목표

1. OS모듈의 내용을 살펴보고 운영체제의 값을 구현하는 클래스와 메소드를 활용할 수 있다.
2. 파일의 입출력을 구현할 수 있다.

 

============================================================================

OS : 운영체제와 관련된 기능을 가진 모듈

import os

print("현재 운영체제 :", os.name)
print("현재 폴더 :", os.getcwd())

# 폴더 만들기/지우기
os.mkdir("test")  # 현재 경로에서 바로 아래만. 한번에 깊게 만들려면 mkdirs()
os.rmdir("test")  # 폴더가 비어있야 제거 가능.

# 파일 이름변경/지우기. 파일이 있어야 함
os.rename("old.txt", "new.txt")
os.remove("new.txt")  # == os.unlink()

# os.path를 활용한 파일경로 및 파일이름 분할
file = 'c:\\test\\b.txt'

a = os.path.basename(file)  # 파일이름만 분할
b = os.path.split(file)     # 파일경로와 파일이름을 분할하여 튜플로 리턴
c = os.path.normpath(file)  # 리눅스, 윈도우에서 경로로 인식한다.
print(a)
print(b)
print(c)


#result
b.txt
('c:\\test', 'b.txt')
c:\test\b.txt

 

============================================================================

파일 입출력

1. byte    = 이미지, 동영상, 음성

2. 문자    = txt

3. object  = 동일한 패턴, 자주사용하는 패턴 --> Class --> 객체생성 --> 입출력

 

[형식]

open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)

open() --> write()/read() --> close()의 형식을 취한다.

content = "Hello Python!"

f = open("content.txt", 'w')  # 현재 디렉토리에 data.txt 파일을 쓰기전용으로 생성 후 내용 저장
f.write(content)
f.close()

f = open("content.txt", 'r')
print(f.read())
f.close()


#result
Hello Python!

 

with ~ as 문을 활용하여 close()가 자동으로 되는 파일입출력 형식

content = "Hello Python!"


with open("content.txt", 'w') as f:
    f.write(content)
    
with open("content.txt",'r') as f:
    print(f.read())
    
    
#result
Hello Python!

 

readline()은 함수가 실행될 때마다 한 줄씩 읽어온다.

readlines()는 함수가 실행되면 한 줄씩 읽어서 리스트에 넣어 리턴한다.

print("=======case1=========")
f = open("content.txt", 'r')
line = f.readline()

while line:
    print(line)
    line = f.readline()
    
f.close()


print("=======case2=========")
f = open("content.txt", 'r')

while True:
    line = f.readline()
    
    if not line:
        break
    print(line)
    
f.close()


print("=======case3=========")
f = open("content.txt", 'r')

for line in f:
    print(line, end="")
    
f.close()

+ Recent posts