- 37. 파이썬 – 프로그램 입출력(연습문제)
- 36. 파이썬 – 파일 읽기.내용 추가하기
- 35. 파이썬 – 파일 읽고 쓰기(내용 쓰기.파일 읽기)
- 34. 파이썬 – 파일 읽고 쓰기(파일 생성)
4장 연습문제
오류 수정과 입력 저장 등의 문제들을 풀이해 보겠습니다.
4. 다른 출력결과가 나오는 코드를 선택해 보세요
- print(“Python’s””favorite””food””is””perl”)
- print(“Python’s” + “favorite” + “food” + “is” + “perl”)
- print(“Python’s”, “favorite”, “food”, “is”, “perl”)
- print(“”.join([“Python’s”, “favorite”, “food”, “is”, “perl”]))
>>> print("Python's""favorite""food""is""perl")
Python'sfavoritefoodisperl
>>> print("Python's" + "favorite" + "food" + "is" + "perl")
Python'sfavoritefoodisperl
>>> print("Python's", "favorite", "food", "is", "perl")
Python's favorite food is perl
>>> print("".join(["Python's", "favorite", "food", "is", "perl"]))
Python'sfavoritefoodisperl
위 결과를 보면 알 수 있듯이 콤마가 있는 경우에는 공백이 생깁니다.
첫 번째 “” 로 둘러싸인 문자열은 문자열 + 연산과 같습니다.
두 번째 는 위 설명대로 “” 로 둘러싸인 문자열과 같습니다.
네 번째는 리스트 요소를 “” 과 각각 합쳐서 출력 하니 역시 첫 번째나 두 번째와 동일합니다.
5. 프로그램 오류 수정 – 2
다음 처럼 test.txt 파일에 “Python’s favorite food is perl” 라고 문자열을 저장 한 뒤 test.txt 파일을 다시 읽어서 출력하는 코드입니다.
file1 = open("test.txt", "w")
file1.write("Python's favorite food is perl")
file2 = open("test.txt", "r")
print(file2.read())
위 코드는 단순하게 예상한 대로 “Python’s favorite food is perl” 문장을 출력하지 않습니다.
예상한 대로 “Python’s favorite food is perl” 문장이 출력 되게 수정해 보세요
위 코드를 그대로 비주얼스튜디오코드에서 입력하고 실행해보면 아무런 결과도 나오지 않습니다.
이유는 파일을 open 했으면 close 를 해줘야 하기 때문입니다.
file1 = open("ex_test.txt", "w")
file1.write("Python's favorite food is perl")
file1.close()
file2 = open("ex_test.txt", "r")
print(file2.read())
file2.close
6. 사용자 입력 저장
사용자가 입력하는 내용을 파일로 저장하는 코드를 작성해 보세요. 파일명은 write_txt.txt 로 하겠습니다.
단, 작성한 코드를 재실행 하더라도 기존에 작성한 내용을 유지하고 새로 입력한 내용을 추가해야 합니다.
txt_input = input("기록할 내용을 입력하세요 : ")
file = open("write_txt.txt", "a") # 모드 a 는 추가 모드 입니다.
file.write(txt_input)
file.write("\n") # 입력한 내용을 줄 단위로 구분하기 위해 줄 바꿈 문자를 넣어 줍니다.
file.close
위 코드를 실행하고 문자 입력후, 재실행 후 문자를 입력 했습니다.
기록할 내용을 입력하세요 : Python's favorite food is perl
기록할 내용을 입력하세요 : python
원하던 대로 기존 문자열을 유지한 채 다음 문자열이 추가가 되었습니다.

7. 파일의 문자열 변경
아래와 같은 문자열을 가진 write_text.txt 파일이 있습니다.
이 파일의 내용중 “java” 라는 문자열을 “python” 으로 바꿔서 저장해 보세요
Python's favorite food is perl
you need java
아래 처럼 코드를 생성해 봅니다
파일을 읽기 모드로 열어서 파일 전체를 txt 라는 변수에 대입합니다.
파일을 닫고 txt 변수 안에 저장된 문자열에서 replace 함수를 사용해 java 를 python 으로 변경합니다.
이번에는 다시 파일을 쓰기 모드로 열어서 저장된 txt 변수의 문자열을 파일에 씁니다.
file = open("write_text.txt", "r")
txt = file.read()
file.close()
txt = txt.replace("java", "python")
file = open("write_text.txt", "w")
file.write(txt)
file.close
8. 입력한 값들을 모두 더하여 출력
다음 처럼 실행을 하면 입력된 값들을 모두 더하는 코드입니다.
D:\test\test_argv.py 파일을 생성해 보세요
D:\> cd test
D:\test> python test_argv.py 1 2 3 4 5 6 7 8 9 10
55
import sys 을 먼저 진행을 해주어야 인수를 전달 할 수 있습니다.
sys 모듈의 argv 를 사용해 주면 됩니다.
import sys
nums = sys.argv[1:] # 파일 이름을 제외한 명령 행의 모든 입력을 받습니다.
tot = 0
for num in nums:
tot += int(num)
print(tot)
- 이 포스팅은 ‘위키독스’ 의 ‘점프 투 파이썬‘ 전자책을 구매하여 독학하기 위한 자료로 작성했습니다.
