-
89 - (파이썬) 모듈 문제study with Q - 파이썬 2024. 9. 19. 18:27
1. 다음 중 math 모듈의 함수를 제대로 읽어 들이지 못하는 코드를 고르시오.
① import math
② import sin, cos, tan from math
③ import math as m
④ from math import *
더보기import sin, cos, tan from math >>> File "/home/runner/number2/main.py", line 1 import sin, cos, tan from math ^^^^ SyntaxError: invalid syntax
2. 파이썬 문서를 보면서 모듈의 이름을 다섯 개 적고, 해당 모듈에 어떤 기능이 있는지 간단하게 적어보시오.
더보기번호 모듈 이름 모듈 기능 0 wave 모듈 wav 음악 형식과 관련된 처리를 할 때 사용합니다. 1 zipfile 모듈 이 모듈은 ZIP 파일을 만들고, 읽고, 쓰고, 추가하고, 나열하는 도구를 제공합니다. 2 pickle 모듈 pickle 모듈은 파이썬 객체 구조의 직렬화와 역 직렬화를 위한 바이너리 프로토콜을 구현합니다. “피클링(pickling)”은 파이썬 객체 계층 구조가 바이트 스트림으로 변환되는 절차입니다. 3 email 모듈 이메일 메시지를 관리하기 위한 라이브러리입니다. 4 cmath 모듈 이 모듈은 복소수에 대한 수학 함수에 대한 액세스를 제공합니다. 3. os 모듈의 oslistdir() 함수와 os.path.isdir()함수를 사용하면 특정 디렉터리를 읽어 파일인지 디렉터리인지를 확인할 수 있습니다. 직접 코드를 작성하고 실행해보시오. (실행하는 위치에 따라서 출력 결과가 달라집니다.)
3-1. 현재 디렉터리를 읽어 들이고 파일인지 디렉터리인지 구분하기
#os 모듈을 읽어 들이고 import os #현재 폴더와 파일/폴더를 출력합니다. #현재 디렉터리의 내용을 읽고 output = os.listdir(".") #print 함수에 앞쪽에 os 디렉터라는 실행결과를 보여줄 수 있도록 문자열과 output을 넣어요. print("os.listdir():", output) print() >>> os.listdir(): ['.cache', '.upm', 'poetry.lock', 'pyproject.toml', '.replit', '.pythonlibs', '.local', 'main.py']
더보기요기까지하고 코드를 실행하면 코드가 들어있는 디렉터리에 있는 모든 파일들을 읽어서 리스트 형식으로 출력해주는 것을 확인할 수 있다.
+ for 반복문으로 반복을 돌려 파일/폴더를 구분하는 코드까지 추가하면
##os 모듈을 읽어 들이고 import os output = os.listdir(".") print("os.listdir():", output) print() ## 현재 폴더의 파일/폴더를 구분합니다. print("#폴더와 파일 구분") for path in output: #만약 os.path에서 path가 디렉토리로 확인이 된다면 폴더라고 출력 if os.path.isdir(path): print("폴더:", path) # 아니라면 파일리라고 출력 else: print("파일:", path) >>> #폴더와 파일 구분 폴더: .cache 폴더: .upm 파일: poetry.lock 파일: pyproject.toml 파일: .replit 폴더: .pythonlibs 폴더: .local 파일: main.py
→ 위와 같은 코드로 디렉터리 내부에 있는 요소를 읽을 수 있고 os.listdir로 해당 데이터가 폴더인지 파일인지 알 수 있군요!
그렇다면 이제 진짜 할 일을 하자3-2. 위의 코드를 활용해서 '폴더라면 또 탐색하기'라는 재귀 구성으로 현재 폴더 내부에 있는 모든 파일을 탐색하도록 코드를 작성해보자.
##os 모듈을 읽어 들이고 import os ##폴더를 읽어 들이자. def read_folder(path): #!read_folder라는 함수, 근데 path라는 경로를 곁들인.. #폴더에 요소 읽어 들이기 output = os.listdir(path) #!os.listdir를 이용해 path에 있는 모든 요소를 읽어 드린다 #폴더의 요소 구분하기 for item in output: #!반복을 돌고, 폴더에 요소를 구분하고 if os.path.isdir(item): #!아이템이 폴더인지 확인을 하고 리드 디렉토리를 다시 실행 read_folder(path + "/" + item) #폴더라면 계속 읽어 들이기 else : #파일이라면 출력하기 print("파일:", item) #현재 폴더의 파일/ 폴더를 출력 read_folder(".") >>> 파일: replit 파일: nix 파일: pypoetry 파일: store.json 파일: poetry.lock 파일: pyproject.toml 파일: .replit 파일: bin 파일: lib 파일: share 파일: main.py
그니께 결국...
※ 다른 모듈을 공부하다보면 이거 만능아녀 생각이 들지만 > 아녀. 라는 것을 알아주십쇼
※ 인터넷이나 챗GPT에게 코드를 묻고 복분해도 알고리즘을 잘 이해하고 있어야 뭐하는 코디인지 이해할 수 있고, 내가 원하는 코드에 적합한 설계로 변경해서 끼워넣을 수 있다는 것도 알아쥬십쇼.
'study with Q - 파이썬' 카테고리의 다른 글
91 - (파이썬) 패키지 (0) 2024.09.22 90 - (파이썬) 모듈 만들기 (0) 2024.09.19 88 - (파이썬) 기본 내장 모듈 (1) 2024.09.13 87 - (파이썬) 모듈을 읽는 방법 (0) 2024.09.13 85 - (파이썬) 스택과 큐 (2) 2024.09.09