엘리스에서 제공한 강의와 자료를 보고 정리한 내용입니다.
✅ 파일 다루기
python에서 파일을 다루는 방법은 다음과 같다.
✔️ open()
인자로 주어진 파일을 열고 해당 파일 객체를 반환한다.
open(file, mode='r', buffering=- 1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
- file : 파일의 path.
- mode : 파일을 열 때 사용할 모드.(r = 읽기, w = 쓰기 등.)
✔️ read()
파일 전체의 내용을 하나의 문자열로 읽어온다.
비슷한 메서드로 readline(), readlines()가 존재한다.
readline()은 한 번에 하나의 라인을 읽어오고 readlines()는 파일 전체를 한 라인씩 읽어와서 리스트를 만들어준다.
✔️ write()
파일에 내용을 작성할 수 있다.
비슷한 메서드로 writelines()가 존재하는데 write()는 Binary 코드에서도 사용할 수 있지만 writelines()는 Text만 지원한다.
✔️ close()
open()으로 파일 포인터를 열었다면 close()를 사용해 닫아주어야 한다.
단, 다음의 방식으로 파일을 열었다면 close()를 사용하지 않아도 된다.
with open('file_name.txt') as file:
content = file.read()
✔️ 줄 단위로 파일 읽어오기
파일을 읽는 것은 보통 줄 단위로 이루어진다.
이때 데이터를 다루기 쉽도록 파일 전체를 읽어오면서 한줄씩 리스트에 저장하는 방법은 다음과 같다.
content = []
with open('file_name.txt') as file:
for line in file:
content.append(line)
✅ list comprehension
리스트 컴프리헨션(list comprehension)은 리스트 안에 식, for문, if문 등을 지정하여 리스트를 생성하는 것을 의미한다.
즉, 리스트를 쉽고 짧게 만들 수 있는 파이썬의 문법 중 하나이다.
보통 리스트를 순회하면서 특정 값을 찾아야 할 때는 빈 리스트를 하나 선언하고 for문을 돌며 빈 리스트에 해당하는 값을 삽입하는 방법을 이용했다.
fruits = ['apple', 'banana', 'lemon', 'strawberry']
first_letters = []
for fruit in fruits:
first_letters.append(fruit[0])
과일의 이름들이 담긴 fruits 배열이 주어지고 과일의 이름에서 첫글자만을 가져와야 한다면 위와 같이 코드를 작성할 수 있다.
각 과일의 이름에서 첫글자만을 뽑아 담을 리스트인 first_letters라는 빈 배열을 생성하고 fruits를 순회하면서 first_letters에 첫글자를 담고 있다.
같은 작업을 list comprehension을 사용하면 다음과 같다.
fruits = ['apple', 'banana', 'lemon', 'strawberry']
first_letters = [fruit[0] for fruit in fruits]
first_letters라는 리스트를 선언할 때 for문을 넣음으로써 해당하는 값만을 리스트에 넣는 것이다.
즉, 선언과 할당이 한 줄에서 모두 이뤄진다.
list comprehension의 기본적인 문법은 다음과 같다.
[ ( 변수를 활용한 값 ) for ( 사용할 변수 이름 ) in ( 순회할 수 있는 값 )]
이를 기본 베이스로 삼고 if문까지 추가해 조건문으로 필터링을 하며 해당하는 값만을 리스트에 담을 수도 있다.
✅ sorted
원본 리스트의 변경 없이 정렬된 새로운 리스트를 반환하는 함수이다.
sorted의 기본 구문은 다음과 같이 작성할 수 있다.
sorted(iterable, key, reverse=False)
- iterable : 정렬할 대상.
- key : 정렬 목적으로 사용할 키.
- reverse : True이면 역으로 정렬된 리스트를 반환한다.
🔍 참조
open https://docs.python.org/ko/3/library/functions.html?highlight=open#open
read https://wikidocs.net/14130
write https://wikidocs.net/14131
close https://wikidocs.net/14306
list comprehension https://shoark7.github.io/programming/python/about-list-comprehension-python
sorted https://docs.python.org/ko/3/howto/sorting.html
'엘리스 AI 트랙 4기 > Data Analysis Study' 카테고리의 다른 글
[Python] set과 집합연산 (0) | 2022.01.30 |
---|---|
[Python] Dictionary와 JSON (0) | 2022.01.30 |
분석 과제와 분석 우선순위 평가 (0) | 2022.01.26 |
분석 기획과 분석 방법론 (0) | 2022.01.26 |
빅데이터와 데이터 사이언스 (0) | 2022.01.26 |
댓글