본문 바로가기
Python

파이썬 데이터 입출력

by 승환파크 2023. 5. 8.

사용자 입력

사용자가 값을 입력하게 하고 싶을 때 사용한다.

a = input()
# 사용자 입력
# 파이썬
print(a)
# 결과값
# 파이썬

number input("숫자를 입력하세요 : ")
# 숫자를 입력하세요 : (사용자 입력)
# 입력값 : 3

print(number)
# 결과값
# 3

# input은 입력되는 모든 데이터를 문자열로 취급한다.
print(type(number))
# 결과값
# <class 'str'>

이렇게 숫자를 입력할 수 있게 칸이 나온다.

위의 사진 같은 칸에 넣고싶은 내용을 작성하면 된다.

그리고 input함수는 모든 데이터를 문자열로 취급하기 때문에 숫자값이 필요한다면 형 변환을 해야 한다.

 

파일 처리

파일 처리를 위해서는 순서를 항상 지켜야 한다.

  1. 파일 열기(open)
  2. 파일 쓰기(write) 또는 읽기(read)
    1. 파일 입력(읽기) : 파일의 내용을 읽어들이는 것
    2. 파일 출력(쓰기) : 파일에 새로운 내용을 추가하거나 새 파일을 생성하는 것
  3. 파일 닫기(close)

 

파일 객체 생성 방법

파일 객체 = open(파일이름(경로), 파일열기모드)

f = open("new_file.txt", "w")
f.close() # 파일 닫기

코드를 실행해서 파일을 생성하면

파일 생성 코드 실행 이후 화면

new_file.txt 라는 파일이 생성된다.

 

파일 모드

  • r(읽기 모드)
    • 파일을 읽기만 할 때 사용한다.
    • 만약 파일이 없으면 오류가 발생한다.
  • w(쓰기 모드)
    • 파일에 내용을 쓸 때 사용한다.
    • 파일이 없으면 새로 생성한다.
    • 기존 파일에 있던 데이터를 완전히 삭제하고 다시 새로 작성한다.
  • a(추가 모드)
    • 파일의 마지막에 새로운 내용을 추가할 때 사용한다.
    • 파일이 없으면 새로 생성한다.

 

f = open("new_file.txt", "w")

for i in range(1, 11):
    f.write(str(i) + "\n")
    
f.close()

코드 실행 후 new_file.txt 내용

코드를 실행하면 new_file.txt 에 내용이 잘 작성된것을 확인할 수 있다.

 

파일 입력 함수

1. readline() 함수

f = open("new_file.txt", "r")
# 파일의 첫번째 줄을 읽음
line = f.readline()
print(line)
f.close()

# 결과값
# 1
#

첫번째 줄 내용에 '\n' 이 있어서 줄바꿈 까지 읽어오게 된다.

모든 내용을 읽고 싶다면 반복문을 사용하면 된다.

f = open("new_file.txt", "r")
while True:
    line = f.readline()
    
    if not line:
        break
    
    print(line)

f.close()
# 결과값
# 1
# 
# 2
# 
# 3
# 
# 4
#
# 5
#
# 6
# 
# 7
# 
# 8
# 
# 9
# 
# 10
#

줄마다 '\n' 이 작성되어 있고 print 함수에서도 자동으로 줄바꿈을 하기 때문에 줄바꿈이 두번씩 이루어진다.

 

2. readlines()

파일의 모든 줄을 읽어서 각각의 줄을 요소로 갖는 리스트가 반환된다.

f = open("new_file.txt", "r")
lines = f.readlines()

for line in lines:
    print(line)

f.close()
# 결과값
# 1
# 
# 2
# 
# 3
# 
# 4
# 
# 5
# 
# 6
# 
# 7
# 
# 8
# 
# 9
# 
# 10
#

print(lines)
# 결과값
# ['1\n', '2\n', '3\n', '4\n', '5\n', '6\n', '7\n', '8\n', '9\n', '10\n']

 

3. read()

파일의 전체내용을 문자열로 반환한다.

f = open("new_file.txt", "r")
data = f.read()
print(data)
f.close()
# 결과값
# 1
# 2
# 3
# 4
# 5
# 6
# 7
# 8
# 9
# 10
#

data
# 결과값
# '1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n'

 

파일 수정

f = open("new_file.txt", "a")

for i in range(11, 20):
    f.write(str(i) + "\n")
    
f.close()

코드 실행후 new_file.txt 내용

코드를 실행하면 수정이 이루어진걸 확인할 수 있다.

 

with 문

파일을 사용한 다음에는 반드시 close()로 파일을 닫아주어야 하는데 깜빡하고 안닫을 가능성이 있다.

따라서 자동으로 close()를 수행하는 문법인 with문을 사용하는 것이 좋다.

with open("new_file.txt", "r") as f:
    data = f.read()
    print(data)

# 결과값
# 1
# 2
# 3
# 4
# 5
# 6
# 7
# 8
# 9
# 10
# 11
# 12
# 13
# 14
# 15
# 16
# 17
# 18
# 19
#

# 이후 f.read() 라는 메서드를 작성하면 with문에서 자동으로 close()를 사용했기 때문에 에러가 발생한다.
f.read()
# 결과값
# ValueError: I/O operation on closed file.

'Python' 카테고리의 다른 글

파이썬 클래스  (1) 2023.05.08
파이썬 내장함수  (1) 2023.05.08
파이썬 함수  (1) 2023.05.08
파이썬 반복문  (1) 2023.05.08
파이썬 조건문  (0) 2023.05.08