함수 만들기 문제 with open file

Junho Song·2022년 11월 19일
0

Python

목록 보기
5/11

파일 이름을 입력받는 함수를 만들어라. 함수가 하는 일은 해당 파일 안에 있는 단어의 수를 세는것이다.

파일 이름을 입력받아 파일의 단어수를 세는 함수 readfile(filename:str)->int를 작성

  • filename이 없으면 '파일이 없습니다.' 표시후 종료
  • 결과 값은 단어의 수를 반환해라

답 코드:

def myfile(filename:str):
    import os
    
    if not os.path.isfile(filename):
        print(filename + ' 파일이 없습니다.')
        return
    
    result = []

    with open(filename, mode='r', encoding='utf-8') as f:
        for line in f.readlines():
            word_list = list(line)
        # print(word_list)
            for _ in range(len(word_list)):
                result.append(word_list.pop())
    return len(result)

def myfile(filename:str):
    import os
    
    if not os.path.isfile(filename):
        print(filename + ' 파일이 없습니다.')
        return

myfile(filename:str)이라는 함수를 만든다. ()안에 들어가는건 filename이라는 argument가 들어가되 str형식으로 들어간다.

os 모듈을 가져온다.

만약 파일의 형식이 아니라면, 파일 이름과 '파일이 없습니다.'를 출력해라


    result = []

    with open(filename, mode='r', encoding='utf-8') as f:
        for line in f.readlines():
            word_list = list(line)
            for _ in range(len(word_list)):
                result.append(word_list.pop())
    
    return len(result)

result라는 리스트의 빈집을 만들어라.

file argument에 입력된 파일을 읽기 모드로, 유니코드로 오픈하고 f라고 명명한다 (with ~ as 자동 close).

f로 명명한 파일을 줄단위로 읽는것을 반복하는데 word_list라는 변수에 각 줄의 단어 갯수만큼의 여러 리스트를 지정한다.

word_list에 들어간 줄 갯수만큼의 길이를 (0 ~ 줄 갯수 길이 -1) 만큼 반복하되 word_list에 들어가 있는 단어를 하나씩 빼내서 result라는 빈집의 리스트에 추가한다.

result 리스트에 추가된 index들(단어들)만큼 def myfile() 함수에 저장하고 함수를 실행했을때 리스트 갯수(단어 갯수)를 출력해라


profile
상위 1%의 금융데이터 분석가를 꿈꿉니다.

0개의 댓글