알쏭달쏭 공부한거 쓰기
HW12 본문
13일차 실습 문제
https://colab.research.google.com/drive/1uococtEI2292KMzDQjtTwl6EaXsy5X6v?usp=sharing#scrollTo=TSi9ApTH8wuW (외부 사이트로 연결합니다.)
1. 다음과 같은 내용을 가지는 we_will_rock.txt 파일이 있다. 파일의 내용을 콘솔에 출력하시오.
Buddy, you're a boy, make a big noise
Playing in the street, gonna be a big man someday
You got mud on your face, you big disgrace
Kicking your can all over the place, singin'
We will, we will rock youWe will, we will rock you
readline() 사용
readlines() 사용
read() 사용
for 문 사용
2. 사용자로부터 파일 이름을 입력으로 받은 후 입력받은 파일의 모든 문자를 대문자로 변환한 후 출력하여라. 그리고 이 내용을 [파일명_upper].txt 라는 이름의 파일로 저장하여라.
입력할 파일의 이름 : we_will_rock.txt
BUDDY, YOU'RE A BOY, MAKE A BIG NOISE
PLAYING IN THE STREET, GONNA BE A BIG MAN SOMEDAY
YOU GOT MUD ON YOUR FACE, YOU BIG DISGRACE
KICKING YOUR CAN ALL OVER THE PLACE, SINGIN'
WE WILL, WE WILL ROCK YOU
WE WILL, WE WILL ROCK YOU
3. 입력 파일에 상점의 일별 매출이 저장되어 있다고 하자. 이것을 읽어서 일별 평균 매출과 총 매출을 계산한 후에 다른 파일에 출력하는 프로그램을 작성하시오.
sales.txt 파일
1000000
1000000
1000000
500000
1500000
summary.txt 파일
총매출 = 5000000
평균 일매출 = 1000000.0
필요하다면 built-in ft. sum() 사용 가능
4. 'alpha_tst.txt' 파일에 나오는 알파벳의 빈도 수를 출력하는 프로그램을 작성하세요.
alpha_tst.txt 파일
aaaaaaaaaa
bbb
cccc
defg
c
python
java
programming
zoo
test
실행 결과
[13, 3, 5, 1, 2, 1, 3, 1, 1, 1, 0, 0, 2, 2, 4, 2, 0, 2, 1, 3, 0, 1, 0, 0, 1, 1]
5. 현재 작업 디렉토리에서 파이썬 소스 파일만 찾으시오. 그 중 파일 내용에서 'python'이 포함된 파일명과 라인을 출력하는 프로그램을 작성하세요.
실행 결과
alpha_tst.py: python
week09.py: if 'python' in line.strip():
6. 파일명을 입력 받아 해당 파일에서 한 라인을 읽어와 출력하려 한다. 아래와 같이 존재하지 않는 파일명을 입력할 경우 예외가 발행하여 비정상 종료된다. 아래 예외를 처리하세요.
예외 처리 전 실행 예시: 존재하지 않는 파일명 입력 시 예외 발생
파일명: abc.txt
Traceback (most recent call last):
File "C:\Users\heyjk\OneDrive\바탕 화면\ELEC520\강의자료\파일\week09.py", line 128, in <module>
excption_tst3()
File "C:\Users\heyjk\OneDrive\바탕 화면\ELEC520\강의자료\파일\week09.py", line 116, in excption_tst3
with open(a, 'r') as f:
FileNotFoundError: [Errno 2] No such file or directory: 'abc.txt'
예외 처리 후 실행 예시
파일명: abc.txt
abc.txt 파일을 찾을 수 없습니다. 파일 이름을 확인해주세요.
파일명: alpha_tst.py
aaaaaaaaaa
7. 아래 프로그램을 작성하시오.
7.1 파일의 3 라인만 읽는 프로그램
7.2 파일에서 가장 긴 단어를 출력하는 프로그램: 가장 긴 단어가 여러 개일 경우 모두 출력
7.3 사용자로부터 라인을 입력받아 파일의 해당 라인만 출력하는 프로그램
*4번은 dictionary로도 풀이해보세요.
4. 'alpha_tst.txt' 파일에 나오는 알파벳의 빈도 수를 출력하는 프로그램을 작성하세요.
alpha_tst.txt 파일
aaaaaaaaaa
bbb
cccc
defg
c
python
java
programming
zoo
test
def a():
with open('alpha_tst.txt','r') as f:
a=[chr(x) for x in range(97,123)]
b=[]
for i in range(26):
b.append(0)
c=dict(zip(a,b))
for x in f:
for alpha in a:
n=x.count(alpha)
c[alpha]+=n
print(c)
a()
교수님
def q13_2():
org_name = input('파일명: ')
file_name, _ = org_name.split('.')
cpy_file_name = f'[{file_name}_upper].txt'
with open(org_name) as f:
with open(cpy_file_name, 'wt') as cpy:
contents = f.read().upper()
cpy.write(contents)
print(f'{cpy_file_name}파일을 확인하세요. ')
def q13_4_dct():
dct = {}
with open('alpha_tst.txt') as f:
while True:
c = f.read(1).lower()
if c=='':
break
if c.isalpha()==True:
if c in dct:
dct[c] += 1
else:
dct[c] = 1
print(dct)
def q13_4_lst():
lst = [0]*26
with open('alpha_tst.txt') as f:
while True:
c = f.read(1).lower()
if c=='':
break
if c.isalpha()==True:
lst[ord(c)-ord('a')] += 1
print(lst)
def q13_7_1():
file_name = input('파일명: ').strip()
with open(file_name) as f:
for _ in range(3):
print(f.readline().rstrip())
def q13_7_2():
file_name = input('파일명: ').strip()
with open(file_name) as f:
words = f.read().split()
the_longest_word = max(words, key = len) #가장 긴 단어 찾기
the_longest_len = len(the_longest_word) #가장 긴 단어의 길이 저장
longest_lst = [x for x in words if len(x)==the_longest_len] #가장 긴 단어와 같은 길이의 리스트 생성
for x in longest_lst:
print(x, end = ' ')
print()
def q13_7_3():
file_name = input('파일명: ').strip()
line_nbr = int(input('라인 번호: '))
with open(file_name) as f:
lines = f.readlines()
print(lines[line_nbr-1].rstrip())
import csv
def coldest_day():
with open('weather.csv') as f:
data = csv.reader(f)
next(data)
coldest_day = ''
coldest_temp = 100 #변경될 수 있도록 일부로 높은 온도로 설정
for x in data:
if float(x[-2])<coldest_temp:
coldest_temp = float(x[-2])
coldest_day = x[0]
print(f'가장 추웠던 날: {coldest_day} (기온: {coldest_temp})')
*weather.csv 파일에서 가장 추웠던 날과 그 날의 기온 출력(0)
'파이썬 -23여름학기(ㄱㅎㅈ)' 카테고리의 다른 글
과제 복습-전체 복습 (0) | 2023.07.12 |
---|---|
기말 (0) | 2023.07.12 |
7/12-파일처리 (0) | 2023.07.12 |
이터레이터 추가 학습 in Youtube (0) | 2023.07.11 |
HW11-파일 처리, map,filter (0) | 2023.07.11 |