[Python 기초] txt파일 한번에 만들기

EMMA·2022년 2월 1일
1
post-thumbnail

동일한 내용을 가진 txt파일 한번에 생성하기


매주 1개 보고서를 작성해야 하는데, 그 내용이 동일하다고 가정하고 한번에 여러 개 생성하는 프로그램을 작성해보자. 규칙은 아래와 같다.
  • 1주차 - 50주차까지, 총 50개 txt 파일을 생성한다.
  • 파일명: '1주차.txt', '2주차.txt'...
  • 내용은 아래와 같이 포함되어야 한다.
    - 1주차 주간 보고 -
    부서 :
    이름 :
    업무 요약 :

1차로 작성한 코드는 아래와 같다.

report_no = range(1,51)
for i in report_no:
    with open(i+"주차.txt","w",encoding="utf8") as report_file:
        report_file.write("- "+i+" 주차 주간보고 -")
        report_file.write("\n부서 :")
        report_file.write("\n이름 :")
        report_file.write("\n업무 요약 :")

바로 에러 발생(...)하여, 무엇이 문제인고 봤더니
: unsupported operand type(s) for +: 'int' and 'str'

ahㅏ... 변수 i에 str를 입히지 않았다.
그리고 수정할 때, range(1,51)을 바로 for문에 넣는 것으로 다시 정리했다.

#report_no = range(1,51)
for i in range(1,51):
    with open(i+"주차.txt","w",encoding="utf8") as report_file:
        report_file.write("- "+i+" 주차 주간보고 -")
   #혹은 report_file.write("- {}주차 주간보고 -" .format(i))
        report_file.write("\n부서 :")
        report_file.write("\n이름 :")
        report_file.write("\n업무 요약 :")

추가로, '- n주차 주간보고 -'를 입력할 write문을 아래와 같이 바꾸면 역시 에러 뜬다.

report_file.write("- %d주차 주간보고 - ", %i)

(220204 update) 추가로 이리저리 검색해본 결과, 정리한 에러는 총 2가지다.

  • 변수 i는 하나의 정수값이 아닌 range값이 부여되어 있기 때문에, 문법 오류로 보인다. (위와 같이 입력하면 invalid syntax라고 오류 메세지가 뜬다.)
  • 만약 report_file.write("- %d주차 주간보고 - ", i) 라고 작성한 경우, 역시 오류다. write는 인수(argument)를 하나만 받는다. 그런데 위와 같이 작성하면 콤마(,)로 인해 인수가 2개 입력된 것으로 인식해 잘못 작성한 코드가 되는 것이다.



과제 출처: 나도코딩

profile
예비 개발자의 기술 블로그 | explore, explore and explore

0개의 댓글