완전 기초부터 시작하는 파이썬
input
입력한 값을 어떤 변수에 대입하고 싶을때 input()을 사용한다.
input()은 입력되는 모든 것을 문자열로 취급한다.
# 콘솔에서 사용해본 input()
>>> num = input("숫자 입력")
숫자 입력
3
>>>print(num)
3
프롬프트에서 숫자 입력을 3이라고 입력 후 num에 3이 잘 들어가있는지 확인해보기 위해 print(num)을 입력하면 3이 출력되는 것을 확인할 수 있다.
output
지금까지 사용한 print()문이 입력했던 자료형들을 출력하는 함수이다.
# 큰 따옴표로 둘러싼 문자열은 + 연산과 동일함
>>>print("My" "name" "is" "Kim sang woo")
MynameisKim sang woo
>>>print("My" + "name" + "is" + "Kim sang woo")
MynameisKim sang woo
# 문자열 띄어쓰기는 콤마로 구분
print("My", "name", "is", "Kim sang woo")
My name is Kim sang woo
# 한 줄에 결과값을 출력하기 위해 'end=' 를 사용한다.
>>>for i in range(10):
...: print(i, end=' ')
...:
0 1 2 3 4 5 6 7 8 9
파일생성
close()는 열려있는 파일을 객체를 닫아주는 역할을 한다. 프로그램 종료 시 파이썬 프로그램이 열려있는 파일의 객체를 자동으로 닫아주기 때문에 생략해도 좋지만 쓰기모드로 열었던 파일을 닫지 않고 다시 사용하려면 오류가 발생하기에 사용하는 것이 좋다.
파일 열기 모드
파일 열기 모드 | 설명 |
---|---|
r | 읽기 모드 : 파일을 읽기만 할 때 사용 |
w | 쓰기 모드 : 파일에 내용을 쓸 때 사용 |
a | 추가 모드 : 파일의 마지막에 새로운 내용을 추가 할 때 사용 |
기본 예제
# open() 함수의 기본 구조
파일 객체 = open(파일이름, 파일 열기 모드)
# 새파일.txt를 쓰기모드로 생성하는 코드
f = open("새파일.txt", 'w')
f.close()
# 지정위치에 생성하는 경우의 코드
f = open("C:/새파일.txt", 'w')
f.close()
# 쓰기모드로 열어 출력값 작성하는 코드
f = open("C:/새파일.txt", 'w')
for i in range(1, 11):
data = "%d번째 줄입니다.\n" %i
f.write(data)
f.close()
외부 파일 읽기
readline()
# 첫 번째 줄 출력
f = open("C:/새파일.txt", 'r')
line = f.readline()
print(line)
f.close()
기본적으로 readline()을 사용해 파일을 읽기 모드로 열면 첫 번째 줄을 읽어 출력한다. 바로 위의 쓰기모드로 열어 출력값을 작성한 코드를 지우지 않았다면 아래의 결과가 출력된다.
1번째 줄입니다.
# 모든 줄을 읽어 출력
f = open("C:/새파일.txt", 'r')
while True:
line = f.readline()
if not line: break
print(line)
f.close()
무한 루프 안에서 한 줄씩 읽어들이다가 더 이상 읽을 줄이 없으면 break를 수행하며, readline()은 더 이상 읽을 줄이 없는 경우 None을 출력한다.
readlines()
f = open("C:/새파일.txt", 'r')
lines = f.readlines()
for line in lines:
print(line)
f.close()
readlines() 함수는 파일의 모든 줄을 읽어 각각의 줄을 요소로 갖는 리스트로 돌려주는 함수다.
readline()과 s하나 차이로 다른 역할을 하기 때문에 주의할 요소이다.
read()
f = open("C:/새파일.txt", 'r')
data = f.read()
print(data)
f.close()
파일의 내용 전체를 문자열로 돌려주며, 위 코드에서의 data는 파일 전체 내용이다.
새로운 내용 추가
# add() - 기존 파일 안에 새로운 데이터 추가
f = open("C:/새파일.txt", 'a')
for i in range(11, 20):
data = "%d번째 줄입니다.\n" %i
f.write(data)
f.close()
with문 사용
with open("C:/새파일1.txt", 'w') as f:
f.write("새로운파일1")
위에서는 close()를 사용해 파일을 수동으로 닫았지만 바로 위의 코드처럼 with문을 사용하여 파일을 열면 with 블록을 벗어나는 순간 open으로 열린 파일이 자동으로 닫힌다.