6. glob 사용하기
glob함수는 파일 시스템에서 파일을 찾을 때 사용되는 유용한 도구이다. 이 함수는 파일 이름의 패턴 매칭을 통해 파일을 검색하고, 일치하는 파일들의 리스트를 반환한다. 주로 파일 이름이나 확장자에 따라 파일을 필터링하는 데 사용된다.
import glob
# 현재 경로의 모든 파일을 찾기
file_list1 = glob.glob('*')
-----------------------------------------------------------------------------------------------
# 단일 파일 패턴으로 파일을 찾기
file_list2 = glob.glob('drive')
-----------------------------------------------------------------------------------------------
# 디렉토리 안의 모든 파일 찾기
file_list3 = glob.glob('sample_data/*')
-----------------------------------------------------------------------------------------------
# 특정 확장자를 가진 파일만 찾기
file_list4 = glob.glob('sample_data/*.csv')
7. os 사용하기
os 모듈은 운영 체제와 상호 작용하기 위한 다양한 함수들을 제공한다. 이 모듈은 파일 시스템을 관리하고, 디렉토리를 탐색하고 파일을 조작하는 데 사용된다.
- 주요 기능
1) 파일 및 디렉토리 관리
▷ 파일 생성, 이름 변경, 삭제 등의 작업을 수행할 수 있음
▷ 디렉토리 생성, 탐색, 삭제 등의 작업을 수행할 수 있음
2) 경로 관리
▷ 절대 경로, 상대 경로, 현재 작업 디렉토리 등의 경로 관리 가능
▷ 경로 구성 요소를 조작하고, 경로를 연결하고, 경로를 정규화할 수 있음
3) 환경 변수 관리
▷ 시스템의 환경 변수를 가져오거나 설정할 수 있음
4) 실행 관리
▷ 외부 프로그램을 실행하거나, 현재 프로세스의 종료 등의 작업을 수행할 수 있음
## 파일 및 디렉토리 관리
# 현재 작업 디렉토리 가져오기
import os
cwd = os.getcwd()
print(cwd)
-----------------------------------------------------------------------------------------------
# 디렉토리 생성
import os
os.mkdir('sample_data/new_directory')
-----------------------------------------------------------------------------------------------
## 경로 관리
# 파일 목록(경로) 가져오기
import os
files = os.listdir('/content')
print(files)
-----------------------------------------------------------------------------------------------
# 경로 조작
import os
path = os.path.join('/content', 'sample_data', 'mnist_test.csv')
print(path)
8. split 사용하기
리스트의 split 메서드를 활용하면 문자열을 여러개로 쪼개는데 유용하다. 문자열로 되어 있는 파일 결로로 부터 파일 제목을 추출하는 등의 상황에서 아주 유용하게 사용할 수 있다.
# 데이터의 경로를 문자열로 표현
file_path = "/usr/local/data/sample.txt"
# split() 함수를 사용하여 디렉토리와 파일명으로 분할
directory, filename = file_path.rsplit('/', 1)
print("디렉토리:", directory) # 출력: 디렉토리: /usr/local/data
print("파일명:", filename) # 출력: 파일명: sample.txt
# file_path라는 문자열 변수에 데이터의 경로를 저장하고, split() 함수를 사용하여 문자열을 / 기준으로 분할합니다.
# rsplit() 함수를 사용하여 오른쪽에서부터 최대 1회만 분할하도록 설정하여 파일명과 디렉토리로 나눕니다.
# 분할된 결과를 각각 directory와 filename 변수에 할당하여 출력합니다.
9. 클래스 배우기
파이썬 클래스는 객체 지향 프로그래밍의 중요한 개념 중 하나이다. 객체 지향 프로그래밍은 현실 세계의 사물을 모델링하여 프로그래밍하는 방법으로, 이를 통해 코드의 재사용성과 유지보수성을 향상시킬 수 있다.
클래스를 사용하면 관련 있는 데이터와 동작을 묶어서 구조화할 있으며 이는 코드의 가독성을 높이고 유지보수를 용이하게 한다. 또한, 클래스는 객체 지향 프로그래밍의 핵심이며 이를 통해 코드를 재사용할 수 있다.
데이터 분석과 같이 복잡한 작업을 수행하는 경우 클래스를 사용하여 코드를 구조화하고 객제 지향적으로 설계하는 것이 좋다.
- 클래스(Class)의 기본 구조
class ClassName:
def __init__(self, parameter1, parameter2):
self.attribute1 = parameter1
self.attribute2 = parameter2
def method1(self, parameter1, parameter2):
# 메서드 내용 작성
pass
# 여기서 `__init__`메서드는 클래스의 생성자로, 객체가 생성될 때 호출되며 초기화 작업을 수행합니다.
# 클래스 내부의메서드들은 클래스의 동작을 정의하는 함수입니다.
# 메서드의 첫 번째 매개변수로 `self`를 반드시 사용해야 합니다. 이는 해당 메서드가 속한 객체를 가리킵니다.
- 클래스와 객체(Object)의 관계
클래스는 객체를 만들기 위한 틀 또는 설계도 이다. 객체는 이러한 클래스를 이용하여 생성된다.
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
# 객체 생성
person1 = Person("Alice", 30)
person2 = Person("Bob", 25)
- 다형성
다형성은 같은 이름의 메서드가 서로 다른 클래스에서 다른 기능을 수행하도록 하는 개념이다.
class Animal:
def sound(self):
print("Some generic sound")
-----------------------------------------------------------------------------------------------
class Dog(Animal):
def sound(self):
print("Woof")
-----------------------------------------------------------------------------------------------
class Cat(Animal):
def sound(self):
print("Meow")
-----------------------------------------------------------------------------------------------
# 다형성 활용
animals = [Dog(), Cat()]
for animal in animals:
animal.sound()
# Animal 클래스의 sound 메서드를 각각의 하위 클래스인 Dog와 Cat에서 재정의하여 다른 동작을 수행하게 됩니다.
- 클래스와 함수의 차이점
클래스와 함수는 모두 파이썬에서 코드를 조직화하고 재사용성을 높이는 데 사용된다. 클래스와 함수는 목적과 사용 방법에서 차이다 있다.
1) 함수
▷ 함수는 일련의 작업을 수행하는 블록으로 일반적으로 입력(매개 변수)를 받아들이고 그에 따른 결과를 반환
▷ 함수는 특정한 작업을 수행하는 독립적인 코드 블록으로, 재사용성을 높이고 코드의 가독성을 개선
▷ 함수는 클래스와 상관없이 돌긻적으로 정의될 수 있음
2) 클래스
▷ 클래스는 데이터와 해당 데이터를 처리하는 메서드(함수)를 함쎄 묶어놓는 것
▷ 클래스는 객체 지향 프로그래밍의 핵심 개념으로, 데이터와 데이터를 다루는 코드를 함께 묶어 객체를 생성할 수 있게 함
▷ 클래스는 객체의 상태(속성)와 행위(메서드)를 정의하고 이를 캡슐화하여 객체를 생성하고 다룰 수 있게 함
▷ 클래스는 상속을 통해 기존 클래스를 확장하고 다형성을 지원하여 유연한 코드 구조 구현 가능
▷ 클래스는 여러 객체를 생성하고 관리함으로써 코드의 구조를 향상시키고 재사용성을 높임
'Today I Learned (TIL) > Python' 카테고리의 다른 글
[TIL] 데이터 전처리 - Pandas(1) (0) | 2024.07.17 |
---|---|
[TIL] Python 베이직 - 1회차 (0) | 2024.07.17 |
[TIL] 데이터 분석 파이썬 종합반 - 5주차(1) (0) | 2024.07.10 |
[TIL] 데이터 분석 파이썬 종합반 - 4주차 (1) | 2024.07.08 |
[TIL] 데이터 분석 파이썬 종합반 - 3주차 (0) | 2024.07.05 |