사용자 입력
사용자가 값을 입력하게 하고 싶을 때 사용한다.
a = input()
# 사용자 입력
# 파이썬
print(a)
# 결과값
# 파이썬
number input("숫자를 입력하세요 : ")
# 숫자를 입력하세요 : (사용자 입력)
# 입력값 : 3
print(number)
# 결과값
# 3
# input은 입력되는 모든 데이터를 문자열로 취급한다.
print(type(number))
# 결과값
# <class 'str'>

이렇게 숫자를 입력할 수 있게 칸이 나온다.
위의 사진 같은 칸에 넣고싶은 내용을 작성하면 된다.
그리고 input함수는 모든 데이터를 문자열로 취급하기 때문에 숫자값이 필요한다면 형 변환을 해야 한다.
파일 처리
파일 처리를 위해서는 순서를 항상 지켜야 한다.
- 파일 열기(open)
- 파일 쓰기(write) 또는 읽기(read)
- 파일 입력(읽기) : 파일의 내용을 읽어들이는 것
- 파일 출력(쓰기) : 파일에 새로운 내용을 추가하거나 새 파일을 생성하는 것
- 파일 닫기(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 에 내용이 잘 작성된것을 확인할 수 있다.
파일 입력 함수
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()

코드를 실행하면 수정이 이루어진걸 확인할 수 있다.
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.