04-2 ~ 04-3 (p.168 ~ p.178)

 

이제 반 정도 왔다. 여기까지 오니까 슬슬 초반에 배웠던 부분들이 가물가물해지려고 한다. 매일마다 복습도 꾸준히 해야겠다.

아직까지는 지금까지 배운 걸로 프로그램을  만들 수 있을 것 같은 느낌은 들지 않는다. 그래서 아직 불안한 느낌이 드는지도 모르겠다. 계속해서 공부를 하는 수밖에 없을 거 같다.

 

열심 또 열심히..!

 


 

04-2 사용자 입력과 출력

 

사용자의 입력을 받는 방법과 출력하는 방법은 여러 가지가 있다.

 

사용자 입력

사용자가 입력한 값을 어떤 변수에 대입하려고 할 때는 이런 방법들이 있다.

# input의 사용
a = input()
>>> Life is too short, you need python
a
>>> 'Life is too short, you need python'
# input은 입력되는 모든 것을 문자열로 취급한다.


# 프롬프트 값을 띄워서 사용자 입력받기
# input("내용 입력")
number = input("숫자를 입력하세요 : ")
>>> 숫자를 입력하세요 : 3
print(number)
>>> 3

 

print 자세히 알기

print문으로 할 수 있는 일은 여러 가지가 있다.

# 큰따옴표(")로 둘러싸인 문자열은 + 연산과 동일하다
print("life" "is" "too short")
>>> lifeistoo short
print("life" + "is" + "too short")
>>> lifeistoo short

# 문자열 띄어쓰기는 콤마로 한다
print("life", "is", "too short")
>>> life is too short

# 한 줄에 결괏값 출력하기
for i in range(10):
    print(i, end=' ') # end 사용

>>> 0 1 2 3 4 5 6 7 8 9 >>>

 

04-3 파일 읽고 쓰기

 

이제까지는 값을 '입력'받을 때는 사용자가 직접 입력하는 방식을 사용했고 '출력'할 때는 모니터 화면에 결괏값을 출력하는 방식으로 프로그래밍해 왔다. 하지만 입출력 방법에는 꼭 이것만 있는 것은 아니다. 여기에서는 파일을 통한 입출력 방법을 배웠다.

 

파일 생성하기

f = open("새파일.txt", 'w')
f.close()

# 파일 객체 = open(파일 이름, 파일 열기 모드)
# open 함수는 '파일 이름'과 ' 파일 열기 모드'를 입력값으로 받고 결괏값으로 파일 객체를 돌려준다.

# C:/doit 디렉터리에 생성하고 싶을 때
f = open("C:/doit/새파일.txt", 'w')
f.close()
파일 열기 모드 설명
r 읽기 모드 - 파일을 읽기만 할 때 사용
w 쓰기 모드 - 파일에 내용을 쓸 때 사용
a 추가 모드 - 파일의 마지막에 새로운 내용을 추가할 때 사용

* 파일을 쓰기 모드로 열면 해당 파일이 이미 존재할 경우 원래 있던 내용이 모두 사라지고, 해당 파일이 존재하지 않으면 새로운 파일이 생성된다.

* 프로그램을 종료할 때 파이썬 프로그램이 열려 있는 파일의 객체를 자동으로 닫아 주기 때문에 close()는 생략해도 되지만 되도록이면 사용해 주는 것이 좋다. 쓰기 모드로 열었던 파일을 닫지 않고 다시 사용하려고 하면 오류가 발생하기 때문이다.

 

파일을 쓰기 모드로 열어 출력 값 적기

이번에는 프로그램의 출력 값을 파일에 직접 써본다.

f = open("C:/doit/새파일.txt", 'w')
for i in range(1, 11):
    data = "%d번째 줄입니다.\n" % i
    f.write(data)
f.close()

# 실행하면 1번째 줄입니다. ~ 10번째 줄입니다. 라고 적혀있는 메모장 파일이 생성된다.

 

프로그램의 외부에 저장된 파일을 읽는 여러 가지 방법

파이썬에는 외부 파일을 읽어 들여 프로그램에서 사용할 수 있는 여러 가지 방법이 있다.

# readline 함수 사용하기
f = open("C:/doit/새파일.txt", 'r')
line = f.readline()
print(line)
f.close()
# readline 함수는 파일의 첫 번째 줄을 읽어 출력하는 함수이다.
# 실행하면 새파일.txt의 가장 첫 번째 줄인 '1번째 줄입니다.'가 출력된다.

# readlines 함수 사용하기
f = open("C:/doit/새파일.txt", 'r')
lines = f.readlines()
for line in lines:
    print(line)
f.close()
# readlines 함수는 파일의 모든 줄을 읽어서 각각의 줄을 요소로 갖는 리스트로 돌려준다.

# read 함수 사용하기
f = open("C:/doit/새파일.txt", 'r')
data = f.read()
print(data)
f.close()
# f.read()는 파일의 내용 전체를 문자열로 돌려준다.

 

파일에 새로운 내용 추가하기

원래 있던 값을 유지하면서 새로운 값을 추가해야 할 경우에는 파일을 추가 모드('a')로 열면 된다.

# 추가 모드를 사용한 예
f = open("C:/doit/새파일.txt", 'a')
for i in range(11, 20):
    data = "%d 번째 줄입니다.\n" % i
    f.write(data)
f.close()
# 실행하면 '10번째 줄입니다.'의 뒤를 이어 '11번째 줄입니다' ~ '19번째 줄입니다'까지 출력된다.

 

with문과 함께 사용하기

지금까지는 항상 코드 마지막에 f.close()를 추가해서 파일을 닫아왔다. 파일을 열면 항상 close 해 주는 것이 좋다.

하지만 with문을 사용하면 파일을 열고 닫는 것을 자동으로 처리할 수 있다.

# with문을 사용한 예
with open("foo.txt", "w") as f:
    f.write("Life is too short, you need python")
# with문을 사용하면 with 블록을 벗어나는 순간 열린 파일 객체 f가 자동으로 close 된다.

 

+ Recent posts