[Quiz 07] 2.7 파일 입출력
작성자 : kim2kie
(2023-03-05)
조회수 : 12983
[참조]
.관련 동영상
https://youtu.be/T3d56g3FF18
Q)
당신의 회사에서는 매주 1회 작성해야 하는 보고서가 있다.
보고서의 기본 형식은 다음과 같다.
- X 주차 주간보고 -
부서 :
이름 :
업무 요약 :
1주차부터 4주차까지의 보고서 파일을 만드는 프로그램을 작성하라.
조건: 파일명은 '1주차.txt', '2주차.txt', ... 와 같다.
.출력 결과(예시):
완성된 코드를 실행시키면 소스코드와 동일한 위치에 다음과 같이 4개의 파일이 생긴다.
1주차.txt
2주차.txt
3주차.txt
4주차.txt
그리고 각 파일에는 해당 주차에 해당하는 주간보고 내용이 포함된다.
(예: 4주차.txt 파일 내용)
- 4 주차 주간보고 -
부서 :
이름 :
업무 요약 :
A) 해설
인코딩과 디코딩: 00절 용어 참조
for문: 2.3절 제어문 참조
open문: 2.7절 파일 입출력 참조
\n과 같은 이스케이프 시퀀스는 2.7절 파일 입출력 참조
C) 코드: "quiz-07.py"
for i in range(1, 5):
with open(str(i) + "주차.txt", "w", encoding="utf8") as report_file:
report_file.write("- {0} 주차 주간보고 -".format(i))
report_file.write("\n부서 : ")
report_file.write("\n이름 : ")
report_file.write("\n업무 요약 : ")
Q-report)
1940년 5월 18일 미국 캘리포니아주 엘센트로시에서 대형지진이 처음으로 계측되었다.
해당 지진데이터 파일을 open문으로 불러서 read문으로 읽고, plot을 사용하여 그래프를 출력하라.
.파일 이름: ELCENTRO_0.DAT
.계측 항목: 가속도(acc)
.계측 단위: 중력가속도(g = 9.81 m/sec2)
.계측 데이터
Data for El Centro 1940 North South Component (Peknold Version)
1559 points at equal spacing of 0.02 sec
Points are listed in the format of 8F10.5, i.e., 8 points across in
a row with 5 decimal places
The units are (g)
*** Begin data ***
0.00630 0.00364 0.00099 0.00428 0.00758 0.01087 0.00682 0.00277
-0.00128 0.00368 0.00864 0.01360 0.00727 0.00094 0.00420 0.00221
0.00021 0.00444 0.00867 0.01290 0.01713 -0.00343 -0.02400 -0.00992
0.00416 0.00528 0.01653 0.02779 0.03904 0.02449 0.00995 0.00961
0.00926 0.00892 -0.00486 -0.01864 -0.03242 -0.03365 -0.05723 -0.04534
...
A) 해설
.open문으로 데이터를 읽는 것은 2.7절 파일 입출력을 참조할 것
def loadData(file,skiprow=0):
acc = loadData("ELCENTRO_0.DAT",6) # (g)
.plot문으로 그래프를 출력하는 것은 [matplotlib] 패키지를 참조할 것
import matplotlib.pyplot as plt
plt.plot(time,acc)
plt.axis([0,35,-0.4,0.4]) # axis의 범위
plt.xlabel('time [sec]') # x축 라벨
plt.ylabel('acc(g)') # y축 라벨
plt.grid() # 그리드 넣기