● glob 함수
- 파일 시스템에서 파일을 찾을 때 사용되는 유용한 도구
- 파일 이름의 패턴 매칭을 통해 파일을 검색하고, 일치하는 파일들의 리스트를 반환
- 주로 파일 이름이나 확장자에 따라 파일을 필터링 하는데 사용
*폴더를 구분할 때는 '\' (window 체제) 기호를 사용한다.
*파일 명을 입력해줄 때 반드시 확장자도 함께 입력해주어야 한다.
*일치하는 파일이나 디렉토리의 패턴을 나타날 때 와일드카드 문자를 사용한다.
○ * : 0개 이상의 모든 문자와 일치한다.
ex) *.txt : 해당 디렉토리에서 텍스트 파일 모두 해당
○ 그 밖의 와일드카드 문자로 ?,[]. {} 등이 있다.
○ [] : 대괄호 안에 포함된 문자 중 하나와 일치
○ {} : 중괄호 안에 포함된 문자열 중 하나와 일치
예시 코드)
import glob
# 현재 경로의 모든 파일을 찾기
file_list1 = glob.glob('*')
# 디렉토리 안의 모든 파일 찾기
file_list3 = glob.glob('sample_data/*')
# 특정 확장자를 가진 파일만 찾기
file_list4 = glob.glob('sample_data/*.csv')
● os 모듈
○ 운영체제와 상호 작용하기 위한 다양한 함수들을 제공
○ 파일 시스템을 관리, 디렉토리를 탐색, 파일을 조작
○ 외부 프로그램을 실행하거나, 현재 프로세스의 종료 등의 작업을 수행
● os 사용 예시
○ 파일 및 디렉토리 관리:
- 현재 작업 디렉토리 가져오기
import os
cwd = os.getcwd()
print(cwd)
- 디렉토리 생성
import os
os.mkdir('sample_data/new_directory')
- 파일 이름 변경
import os
os.rename('sample_data/new_directory', 'sample_data/new_directory2')
- 파일 삭제
import os
os.remove(file_adress)
import os
os.remove('sample_data/data.csv')
○ 경로 관리:
- 파일 목록(경로) 가져오기
import os
files = os.listdir('/content')
print(files)
- 경로 조작
import os
path = os.path.join('/content', 'sample_data', 'mnist_test.csv')
print(path)
▶ split 사용하기
- 리스트의 split 메서드를 활용하면 문자열을 여러개로 쪼개는데 유용
- 문자열을 공백 기준으로 분할하여 리스트로 변환 예시
sentence = "Hello, how are you doing today?"
words = sentence.split()
print(words) # 출력: ['Hello,', 'how', 'are', 'you', 'doing', 'today?']
- 특정 구분자를 기준으로 문자열을 분할하여 리스트로 변환하기
data = "apple,banana,grape,orange"
fruits = data.split(',')
print(fruits) # 출력: ['apple', 'banana', 'grape', 'orange']
- 리스트의 각 항목을 문자열로 결합하기 (split 메서드는 아니지만 함께 알아두기)
words = ['Hello,', 'how', 'are', 'you', 'doing', 'today?']
sentence = ' '.join(words)
print(sentence) # 출력: Hello, how are you doing today?
- 리스트의 각 항목을 문자열로 결합하되, 특정 구분자를 사용하여 결합
fruits = ['apple', 'banana', 'grape', 'orange']
data = ','.join(fruits)
print(data) # 출력: apple,banana,grape,orange
- 여러 줄로 이루어진 문자열을 줄 단위로 분할하여 리스트로 변환하기
text = """First line
Second line
Third line"""
lines = text.split('\n')
print(lines) # 출력: ['First line', 'Second line', 'Third line']
- 문자열을 공백으로 분할한 후 특정 개수의 항목만 가져오기
sentence = "Hello, how are you doing today?"
words = sentence.split()
first_three_words = words[:3]
print(first_three_words) # 출력: ['Hello,', 'how', 'are']
- 문자열에서 공백을 제거한 후 문자열을 리스트로 변환하기
text = " Hello how are you "
cleaned_text = text.strip()
words = cleaned_text.split()
print(words) # 출력: ['Hello', 'how', 'are', 'you']
- 데이터를 불러올 때 경로 처리할 때 rsplit() 함수 사용
# 데이터의 경로를 문자열로 표현
file_path = "/usr/local/data/sample.txt"
# split() 함수를 사용하여 디렉토리와 파일명으로 분할
directory, filename = file_path.rsplit('/', 1)
print("디렉토리:", directory) # 출력: 디렉토리: /usr/local/data
print("파일명:", filename) # 출력: 파일명: sample.txt
* rsplit() 함수를 사용하여 오른쪽에서부터 최대 1회만 분할하도록 설정하여
파일명과 디렉토리로 나눈다.
'데이터분석 study > Python' 카테고리의 다른 글
TIL_24.07.12_알면 유용한 파이썬 문법들(불리언 인덱싱) (0) | 2024.07.12 |
---|---|
TIL_24.07.11_알면 유용한 파이썬 문법3(class) (0) | 2024.07.11 |
TIL(Today I Learned) 24.07.09_ 알면 유용한 파이썬 문법들1 (0) | 2024.07.09 |
TIL(Today I Learned) 24.07.09_ 제곱근 구하기 (0) | 2024.07.09 |
TIL(Today I Learned) 24.07.08_함수 (0) | 2024.07.08 |