본문 바로가기
Python/점프 투 파이썬

사용자 입출력, 파일 읽고 쓰기

by k-mozzi 2021. 8. 20.
반응형
Preface

 

함수를 이용하여 새로운 파일을 만들고, 내용을 쓰거나 이미 쓰여진 내용을 읽는 방법에 대해 공부했다.

 

매번 새로운 함수의 사용 방법을 익히는 것이 힘들다는 것을 제외하면 크게 어려운 부분은 없었지만, 코드를 작성하며 '굳이 함수를 사용해서 파일 작업을 해야 할까?'라는 의문이 생겼다.

 

마우스 클릭 한 번이면 다양한 파일을 자유자재로 넘나들며 필요한 내용을 찾거나 수정할 수 있는데, 왜 함수 코드를 통해 파일에 접근하는 것인지 잘 모르겠다.

 

또, sys 모듈에 대한 간략한 설명을 읽어봤지만, 이해가 잘 되지 않아 모듈 파트를 배울 때 정확히 짚고 넘어가기로 결정했다.


 

1. 사용자 입출력

 

number = input('숫자를 입력하세요: ')
print(number, '\n')
# input은 입력되는 모든 것을 문자열로 취급한다.


print('I''love''you')
print('I'+'love'+'you', '\n')
# 큰따옴표(")로 둘러싸인 문자열은 + 연산과 동일하다.


print('I', 'love', 'you','\n')
# 문자열 띄어쓰기는 콤마로 한다


for i in range(10):
    print(i, end=' ')
# 한 줄에 결괏값을 계속 이어서 출력하려면 end를 사용해 끝 문자를 지정해야 한다.

 


 

2. 파일 읽고 쓰기

 

f = open('file.txt', 'w')
f.close
# f.close는 열려 있는 파일 객체를 닫아 주는 역할(작업 종료)을 한다.
# 파일 경로에 역슬래시(\)를 사용할 땐 역슬래시를 두 개 사용하거나,
# 문자열 앞에 r을 적어 줄바꿈 문자로 해석되지 않게 해야 한다.
'''
open 함수를 통해 파일 생성 : 파일 객체 = open(파일 이름, 파일 열기 모드)

r(읽기모드) : 파일을 읽기만 할 때 사용
w(쓰기모드) : 파일에 내용을 쓸 때 사용
a(추가모드) : 파일의 마지막에 새로운 내용을 추가 시킬 때 사용
'''

f = open('newfile.txt', 'w')
for i in range(1, 11):
    data = f'{i}번째 줄입니다.\n'
    f.write(data)
f.close()


f = open('c:/Users/김경모/Desktop/python/newfile.txt', 'r')
line = f.readline()  # 파일을 한 줄씩 읽는 함수
print(line)
f.close()
print('\n')


f = open('c:/Users/김경모/Desktop/python/newfile.txt', 'r')
while True:  # readline 함수로 파일의 모든 줄을 읽는 경우
    line = f.readline()
    if not line:
        break
    print(line)
f.close()
print('\n')


f = open('c:/Users/김경모/Desktop/python/newfile.txt', 'r')
lines = f.readlines()  # 파일의 모든 줄을 읽는 함수
for line in lines:
    line = line.strip()  # 공백 제거
    print(line)
f.close()
print('\n')
# readline과 readlines 헷갈리지 않기!


f = open('c:/Users/김경모/Desktop/python/newfile.txt', 'r')
data = f.read()  # 파일의 내용 전체를 문자열로 돌려주는 함수
data = data.strip()
print(data)
f.close()
print('\n')


f = open('c:/Users/김경모/Desktop/python/newfile.txt', 'a')
for a in range(11, 21):
    data = (f'{a}번째 줄입니다.\n')
    f.write(data)
f.close()
# 쓰기모드(w)로 파일을 열면 기존의 있던 내용이 삭제되므로,
# 추가모드(a)로 파일을 열어 내용을 작성한다.


with open('new.txt', 'w') as f:
    f.write('파이썬 공부 어렵다.')
with open('c:/Users/김경모/Desktop/python/new.txt', 'r') as f:
    data = f.read()
    print(data)
# with문을 사용하면 with 블록을 벗어나는 순간 열린 파일 객체 f가 자동으로 close된다.
728x90
반응형

'Python > 점프 투 파이썬' 카테고리의 다른 글

클래스  (0) 2021.08.30
입출력 연습문제  (0) 2021.08.21
함수  (0) 2021.08.18
제어문 연습문제  (0) 2021.08.18
for문  (0) 2021.08.17

댓글