Python
40 posts
[Python] range 역순으로 for문 반복

함수를 사용하여 for문을 역순으로 반복하는 방법에 대해서 알아보겠습니다. 1. 일반적인 range()와 for문 2. range를 이용하여 역순으로 반복 3. “step=-2”로 역순 반복 4. 2중 for문과 range() 1. 일반적인 range()와 for문 는 start를 포함하고 end는 포함하지 않는 범위입니다. for문과 함께 사용되면 아래와 같이 index의 범위를 지정하여 반복할 수 있습니다. Output: 2. range를 이용하여 역순으로 반복 은 start에서 end까지 step 간격으로 숫자를 생성합니다. : 9에서 0까지 -1 간격으로 숫자 생성, 9 -> 8 -> 7 … -> 0의 숫자가 생성됩니다. Output: 3. “step=-2”로 역순 반복 step을 -2로 설정하면, 아래와 같이 9부터 -2간격으로 숫자를 생성하며 반복합니다. : 9에서 0까지 -2 간격으로 숫자 생성, 9 -> 7 -> 5 -> 3 -> 1 Output: 4. 2중 fo…

[Python] 파일 마지막 줄 읽기, 3가지 방법

텍스트 파일에서 마지막 라인만 읽는 방법에 대해서 알아보겠습니다. 1. readlines()를 이용한 방법 2. for문을 이용한 방법 3. readline()을 이용한 방법 1. readlines()를 이용한 방법 는 파일의 텍스트들을 라인으로 읽어서 리스트로 리턴합니다. 의 리턴 값이 있다면, 리스트의 마지막 Index 값을 읽으면 마지막 줄의 문자열을 얻을 수 있습니다. 의 리턴 값이 없다면, 비어있는 파일입니다. Output: 2. for문을 이용한 방법 처럼 파일에 대해서 for 루프를 돌리면, 라인 단위로 파일의 모든 내용을 순회합니다. 아래와 같이 for문으로 순회하면서 마지막 라인을 찾을 수 있습니다. Output: 3. readline()을 이용한 방법 는 파일에서 한 줄을 읽고 문자열을 리턴합니다. 아래와 같이 while문을 이용하여 파일 끝까지 읽으면서, 마지막 라인의 문자열을 찾을 수 있습니다. 의 리턴 값이 빈 값이면, 파일의 끝에 도달함을 의미하며, br…

[Python] 폴더 내 여러 JSON 파일 읽기

특정 디렉토리 아래의 JSON 파일을 모두 읽어서 딕셔너리에 저장하는 방법에 대해서 알아보겠습니다. 1. JSON 파일 읽기 2. 특정 폴더 하위의 모든 JSON 파일 읽기 1. JSON 파일 읽기 아래와 같이 JSON 파일을 읽을 수 있습니다. with로 파일을 열기 때문에, 명시적으로 파일을 닫을 필요가 없습니다. with 구문이 종료되면 자동으로 닫힙니다. : 파일 열기 : json_file 텍스트를 JSON 형식으로 읽고 딕셔너리 구조로 리턴 2. 특정 폴더 하위의 모든 JSON 파일 읽기 특정 폴더 하위의 모든 JSON 파일을 찾아서 읽고, JSON 데이터를 리스트에 저장합니다. 예제에서는 파싱한 모든 데이터를 마지막에 출력합니다. 디렉토리 하위의 모든 파일 탐색 : 파싱한 JSON 객체를 리스트에 저장 : 파싱한 모든 JSON 데이터 출력 Output:

[Python] 두 리스트 중복 제거, 3가지 방법

두 리스트가 갖고 있는 요소들 중에 중복 값을, 두 리스트에서 서로 제거하는 방법에 대해서 알아보겠습니다. 1. List comprehension을 이용한 방법 2. filter()를 이용한 방법 3. for문을 이용한 방법 1. List comprehension을 이용한 방법 리스트 컴프리헨션을 이용하여 두개의 리스트의 중복을 서로 찾아서 제거할 수 있습니다. for문을 이용하여 동일하게 구현할 수 있지만, 리스트 컴프리헨션을 사용하면 한 줄로 구현할 수 있습니다. : list1의 값 중에 list2에 없는 것만 리스트로 리턴 Output: 2. filter()를 이용한 방법 는 list의 요소들 중에 lambda 함수에 대해서 true인 것만 Iterator로 리턴됩니다. : list1의 요소들 중에 list2에 없는 것만 Iterator로 리턴 : Iterator로 참조되는 요소들을 리스트로 변환 Output: 3. for문을 이용한 방법 for문을 이용하여 직접 구현할…

[Python] 문자열 마지막 문자 제거, 3가지 방법

문자열의 마지막 문자를 제거하는 방법에 대해서 알아보겠습니다. 마지막 문자에 ”,“가 붙어있거나, 어떤 문자가 붙어있을 때 이것을 제거하고 싶을 때가 있는데요. 예제와 함께 제거 방법을 알아보겠습니다. 1. 리스트 슬라이싱을 이용한 방법 2. rstrip()을 이용한 방법 3. 정규표현식을 이용한 방법 1. 리스트 슬라이싱을 이용한 방법 는 문자열 text에서 Index 0부터 문자열 마지막 Index 바로 이전까지만 잘라서 문자열로 리턴합니다. 는 에서 마지막 문자를 제외한 나머지를 잘라서 리턴 Output: 2. rstrip()을 이용한 방법 는 str1이 str2로 끝나면, 문자열에서 str2를 제거합니다. 아래와 같이 문자열이 특정 문자로 끝날 때 제거하도록 하거나, 항상 마지막 문자를 제거하도록 구현할 수 있습니다. : text의 끝이 !로 끝나면 ! 제거 : 은 text의 마지막 문자열 리턴, 즉, 이 코드는 마지막 문자열을 제거 Output: 3. 정규표현식을 이용…

[Python] 리스트에서 공백, 줄바꿈 제거

문자열 리스트의 요소들 중에 공백(), 빈문자(), 줄바꿈() 문자들이 포함된 경우가 있는데, 이런 불필요한 문자열들을 제거하여 정리하는 방법에 대해서 알아보겠습니다. 1. isspace(), strip()을 이용한 방법 2. filter()를 이용한 방법 3. 정규표현식을 이용한 방법 1. isspace(), strip()을 이용한 방법 은 문자열에 공백이 있을 때 true를 리턴하며, 은 문자열의 앞/뒤의 공백을 제거합니다. 빈문자열, 공백 문자, 개행 문자에 대해서 은 다음과 같은 결과를 출력합니다. 이것을 이용하여 아래와 같이 리스트 컴프리헨션과 함께 공백 문자, 줄바꿈 문자를 제거할 수 있습니다. : 공백 문자, 개행문자를 필터링 : 공백 문자를 필터링 Output: 2. filter()를 이용한 방법 isspace(), strip()를 사용하는 것은 동일하지만, 리스트 컴프리헨션 대신에 함수를 사용하여 다음과 같이 구현할 수 있습니다. 모든 리스트 요소에 대해서 문…

[Python] print() 줄바꿈 제거

print() 함수에서 줄바꿈 문자를 제거하는 방법에 대해서 알아보겠습니다. 1. 줄바꿈 문자(개행 문자) 2. print()에서 줄바꿈 문자 제거 3. 문자열 중간에 있는 줄바꿈 문자 제거 1. 줄바꿈 문자(개행 문자) 줄바꿈 문자(개행문자)는 을 말하며, 텍스트의 한줄이 끝났음을 나타내는데 사용됩니다. 텍스트 파일을 열어보면, 보이지는 않지만 문서 끝에 줄바꿈 문자가 있습니다. 이 문자로, 줄이 바뀌었는지 인식하여 다른 줄로 텍스트를 보여줍니다. 2. print()에서 줄바꿈 문자 제거 print()는 기본적으로 문자열 끝에 을 붙여서 화면에 출력합니다. 그래서 기본적으로 줄이 바뀝니다. 만약 줄바꿈 문자를 제거하고 싶다면 두번째 인자로 를 전달하면 됩니다. end가 문자열 마지막에 추가할 문자를 변경합니다. 결과를 보면, 두번째 줄은 줄바꿈을 하지 않고 세번째 줄이 바로 출력됨 Output: 만약 줄바꿈 문자 대신에, 다른 문자를 넣고 싶다면 아래와 같이 추가할 수 있습니다.…

[Python] 문자열에서 숫자만 제거, 3가지 방법

문자열에서 숫자만 찾아서 제거하는 방법에 대해서 알아보겠습니다. 1. 정규표현식을 이용한 방법 2. 반복문을 이용한 방법 3. str.maketrans()를 이용한 방법 1. 정규표현식을 이용한 방법 re.sub(pattern, repl, text)는 text에서 pattern과 일치하는 문자열을 모두 찾고 repl로 변경합니다. 이것을 이용하여 아래와 같이 숫자만 찾는 패턴으로 숫자를 모두 찾고, 빈문자열로 변환하여 제거할 수 있습니다. 정규표현식 는 숫자 1개를 의미, 는 1개 이상의 문자를 의미 : text에서 1개 이상의 숫자들이 연속된 문자열을 찾고 로 변경 Output: 2. 반복문을 이용한 방법 아래와 같이, 문자열의 각 문자를 반복 순회하면서, 숫자가 아닌 문자만 모으고, 으로 합치면 숫자만 제거된 문자열을 만들 수 있습니다. : iterable의 요소들을 하나의 문자열로 연결하는데, 요소들 사이에 를 추가 Output: 3. str.maketrans()를 이용한…

[Python] 문자열 중간 공백 제거, 4가지 방법

문자열 중간에 있는 공백들을 제거하는 방법에 대해서 알아보겠습니다. 1. replace()를 이용한 방법 2. 정규표현식을 이용한 방법 3. split()을 이용한 방법 4. List comprehension을 이용한 방법 1. replace()를 이용한 방법 는 문자열에서 a를 b로 변경합니다. 이것을 이용하여 아래와 같이 공백 문자를 빈문자열로 변환하여 제거할 수 있습니다. 중간 공백 뿐만 아니라 앞, 뒤 공백도 제거됨 Output: 2. 정규표현식을 이용한 방법 는 string 문자열에서 pattern에 일치하는 모든 문자열을 repl로 변경합니다. 이것을 이용하여 아래와 같이 공백 문자를 빈문자열로 변환하여 제거할 수 있습니다. 중간 공백 뿐만 아니라 앞, 뒤 공백도 제거됨 패턴에서 는 공백을 의미, 는 앞의 패턴이 1개 이상 반복되는 패턴 Output: 3. split()을 이용한 방법 은 공백으로 문자열을 분리하고 리스트로 분리된 문자열들을 리턴합니다. 이 리스트를 으로…

[Python] 특수문자 제거, replace()와 정규식

replace()와 정규표현식 등을 이용하여 문자열에서 특수문자를 제거하는 방법에 대해서 알아보겠습니다. 1. 정규표현식으로 특수문자 제거 아래와 같이 정규표현식으로 특수문자 제거할 수 있습니다. : string에서 pattern에 일치하는 문자열을 repl로 변경 Output: 2. Output: 3. Output: 4. Output: 5. Output: 6. Output:

[Python] with로 파일 읽기/쓰기

with 키워드를 이용하여 파일을 읽고 쓰는 방법에 대해서 알아보겠습니다. 1. with를 사용하지 않고 파일 열기 2. with로 파일 열기 3. with로 파일 쓰기 4. with를 사용하여 append 모드로 파일 열기 1. with를 사용하지 않고 파일 열기 with를 사용하지 않고 파일을 열면, 파일을 모두 사용하고 로 파일을 닫아줘야 합니다. 만약 파일을 닫지 않으면 프로세스에 파일이 열린 상태로 되어있고, 이런 것이 누적되어 파일을 열 수 없는 상황이 발생할 수 있습니다. 2. with로 파일 열기 with를 사용하여 파일을 열면, with 구문이 종료될 때 저절로 파일이 닫힙니다. 따라서, 명시적으로 닫아줄 필요가 없어서 실수로 리소스 leak이 발생하는 일이 없게 됩니다. 아래와 같이 with를 사용하여 파일을 열 수 있습니다. : read 모드로 파일 열기 : 파일 내용 읽기 3. with로 파일 쓰기 with로 파일을 쓰려면, 아래와 같이 모드로 파일을 열…

[Python] 환경 변수 읽기 (os.environ)

파이썬에서 모든 시스템 환경 변수를 읽거나, 특정 환경변수를 가져오는 방법에 대해서 알아보겠습니다. 1. 모든 환경 변수 읽기 2. 특정 환경 변수 읽기 1. 모든 환경 변수 읽기 는 모든 환경 변수 정보를 갖고 있는 객체를 리턴하며, for문으로 key와 value를 순회할 수 있습니다. key는 환경 변수 이름, value는 값 아래와 같이 모든 환경 변수 값을 출력할 수 있습니다. Output: 2. 특정 환경 변수 읽기 아래와 같이 get 함수로 특정 환경 변수의 값을 읽을 수 있습니다. 대신에 찾으려는 환경 변수를 입력하면 됩니다. 찾으려는 환경 변수가 없는 경우, 기본값이 리턴됩니다. 실제 환경 변수를 사용하여 아래와 같이 호출하고 결과를 확인해볼 수 있습니다. Output: 기본값 미설정 처럼 기본 값을 사용하지 않을 수 있습니다. 대신, 찾으려는 환경 변수가 없는 경우 이 리턴됩니다.

[Python] 상위 폴더 파일 import 방법

파이썬에서 상위 폴더의 파일을 import하는 방법에 대해서 알아보겠습니다. 1. 동일 경로 파일 import 2. 상위 경로 파일 import 1. 동일 경로 파일 import 아래와 같이 동일 경로에 와 가 있다면, 에서는 아래와 같이 동일 경로의 파일을 import할 수 있습니다. 2. 상위 경로 파일 import 동일 경로가 아닌, 상위 경로의 파일을 import하려면 먼저 상위 경로의 path를 절대 경로에 추가해야 합니다. 그리고 파일을 import할 수 있습니다. 아래와 같이 의 상위 경로에 가 있을 때 에서 아래 코드처럼 을 import 할 수 있습니다. : 절대경로 path에 상위 경로 path 추가 : 작업 디렉토리의 상위 경로 리턴 : new_module 파일 import 또는 상위 디렉토리의 절대 경로를 직접 입력하고 import 할 수 있습니다.

[Python] 한번에 여러개 입력 받기

input 함수를 이용하여, 한번에 여러 데이터를 입력 받는 방법에 대해서 알아보겠습니다. 1. 숫자 여러개를 공백으로 구분하여 입력 받기 2. 여러 줄에 걸쳐 입력 받기 3. 문자열 여러개를 쉼표로 구분하여 입력 받기 1. 숫자 여러개를 공백으로 구분하여 입력 받기 입력하는 숫자 간에 공백으로 구분하여 여러 값을 입력할 수 있습니다. : 한번에 여러 값을 입력받고 공백으로 문자열 분리 : 문자열로 된 숫자를 int로 변환하고 다시 리스트에 저장 Output: 만약 숫자가 아닌 문자열을 받는다면, 문자열을 int로 변환하는 부분만 제외하고 아래와 같이 구현하시면 됩니다. Output: 2. 여러 줄에 걸쳐 입력 받기 한줄에 여러 값을 전달하는 것이 아니고, 한줄에 하나의 데이터만 전달하고 대신 여러 줄에 걸쳐 여러 데이터를 전달하는 방식입니다. 아래와 같이 반복문으로 을 여러번 호출하여 여러 데이터를 받습니다. 그리고 마지막에 라는 키워드를 입력했을 때 반복문을 탈출하여 입력받…

[Python] for문 리스트 출력, 3가지 방법

for문 등, 반복문으로 리스트의 모든 요소를 탐색, 출력하는 방법에 대해서 알아보겠습니다. 1. for문으로 리스트 출력 2. for문과 range로 리스트 출력 (index, value) 3. for문과 enumerate()로 리스트 출력 (index, value) 4. while문으로 리스트 출력 1. for문으로 리스트 출력 기본적으로 for문으로 사용하여 아래와 같이 리스트의 모든 요소를 순회하고 값을 출력할 수 있습니다. Output: 2. for문과 range로 리스트 출력 (index, value) for문과 range를 사용하면 값과 함께 index도 출력할 수 있습니다. : 0에서 n-1의 범위 : 순회하면서 i에 0부터 (length - 1)까이 입력됨 Output: 3. for문과 enumerate()로 리스트 출력 (index, value) enumerate를 이용하면 조금 더 보기 좋게 for문으로 리스트를 순회할 수 있습니다. : 리스트의 요소를 순…

[Python] json.dump() 한글 깨지지 않도록 저장

으로 딕셔너리를 JSON 파일로 저장하고 파일을 열면, 한글이 이상하게 보입니다. 에디터에서 파일을 열 때도 한글로 보이도록 저장하는 방법에 대해서 알아보겠습니다. 1. 잘못된 포맷으로 한글이 저장되는 경우 2. 한글을 유니코드로 저장 3. 유니코드로 저장된 JSON 파일 읽기 1. 잘못된 포맷으로 한글이 저장되는 경우 아래와 같이 딕셔너리를 JSON 형식의 파일로 변환하여 저장할 수 있습니다. 하지만 저장된 파일을 보면 한글 그대로 표현되지 않고 이상한 문자들로 보입니다. : dict를 JSON으로 변환하여 file에 저장 저장된 파일을 열어보면 아래와 같이 보입니다. 위의 코드는 한글을 유니코드가 아닌 아스키로 저장되어 이렇게 보임 유니코드 형식으로 저장해야 에디터에서 한글로 보임 2. 한글을 유니코드로 저장 로 JSON 파일을 저장할 때 인자로 값을 false로 전달하면, 한글이 유니코드 문자 그대로 저장됩니다. 이 때문에 에디터로 저장된 파일을 열면 한글로 보이게 됩니…

[Python] 리스트 순서 바꾸기, 3가지 방법

리스트의 순서를 반대로 바꾸는, 거꾸로 뒤집는 방법에 대해서 알아보겠습니다. 1. reverse()를 이용한 방법 2. 리스트 슬라이싱을 이용한 방법 3. reversed()를 이용한 방법 1. reverse()를 이용한 방법 는 리스트의 순서를 반대로 변경합니다. Output: 2. 리스트 슬라이싱을 이용한 방법 리스트 슬라이싱을 이용하여, 역순으로 리스트의 순서를 바꿀 수 있습니다. : 뒤에서 시작 방향으로 -1 간격으로 요소를 뽑아서 리스트로 리턴, 즉, 순서가 역순으로 변경된 리스트가 리턴됨 Output: 3. reversed()를 이용한 방법 는 list의 역순으로 참조하는 iterator를 리턴합니다. 로 이터레이터의 요소들을 리스트로 변환할 수 있습니다. : reversed_iterator의 요소를 리스트로 변환하여 리턴 Output:

[Python] 월 마지막 날짜 찾기, 2가지 방법

특정 년도와 특정 달의 마지막 날짜를 계산하는 방법에 대해서 알아보겠습니다. 1. calendar를 이용한 방법 는 특정 년도, 월의 정보를 Tuple로 리턴합니다. : 월의 시작 날짜 : 월의 마지막 날짜 아래와 같이 calendar를 사용하여 특정 년도, 월의 마지막 날짜를 찾을 수 있습니다. Output: 2. datetime을 이용한 방법 만약 9월의 마지막 날짜를 찾고 싶을 때, 10월에서 하루를 빼면, 그 날짜가 마지막 날짜가 됩니다. 이런 방법을 활용하여, 아래 예제와 같이 datetime으로 특정 월의 마지막 날짜를 찾을 수 있습니다. : year년 month월 1일에 대한 datetime 객체 생성 : 한달을 더함 : 원하는 월의 다음 월 첫번째 날짜에 대한 datetime 객체 : next_month에서 하루를 빼고, 그 날짜를 리턴, 즉, 원하는 월의 마지막 날짜가 리턴됨 Output: 3. 특정 월의 첫번째 날짜 찾기 첫번째 날짜는 항상 1이기 때문…

[Python] 리스트 랜덤 섞기, 3가지 방법

리스트가 갖고 있는 요소들의 순서를 랜덤으로 섞는 방법에 대해서 알아보겠습니다. 리스트의 요소들을 무작위로 뽑거나, 어떤 동작을 무작위로 동작하게 만드려고 리스트의 순서를 랜덤으로 변경하고 싶을 때가 있습니다. 1. random.shuffle()을 이용한 방법 2. random.sample()을 이용한 방법 3. random.choice()를 이용한 방법 1. random.shuffle()을 이용한 방법 는 list의 순서를 랜덤으로 섞습니다. 아래와 같이 구현할 수 있습니다. Output: 2. random.sample()을 이용한 방법 은 list가 갖고 있는 요소들 중에서 num 개수만큼 무작위로 요소 값을 뽑고 값들을 리스트에 저장하여 리턴합니다. : my_list의 개수만큼 무작위로 뽑고 리스트로 반환, 즉, my_list의 순서가 랜덤으로 변경된 리스트가 새로운 만들어짐 의 순서는 변경되지 않음 Output: 3. random.choice()를 이용한 방법 는 list…

[Python] 리스트 거꾸로 출력, 3가지 방법

리스트의 순서를 뒤집어서, 거꾸로 출력하는 방법에 대해서 알아보겠습니다. 1. reverse()를 이용한 방법 2. reversed()를 이용한 방법 3. 리스트 슬라이싱을 이용한 방법 1. reverse()를 이용한 방법 는 리스트의 순서를 반대로 뒤집습니다. 원본 리스트의 순서를 변경하기 때문에, 원본 리스트 값이 변경됨 Output: 2. reversed()를 이용한 방법 는 list의 순서를 거꾸로 뒤집고, 그 값들을 참조하는 iterator 객체를 리턴합니다. 로 이터레이터를 리스트로 변환할 수 있음 순서가 뒤집힌 리스트 객체를 새로 만드는 것이기 때문에, 원본 리스트는 변경되지 않음 Output: 3. 리스트 슬라이싱을 이용한 방법 는 my_list의 끝에서 시작 index까지 -1씩 감소하면서 거치는 값들을 리스트로 리턴합니다. 즉, 역순으로 변경된 리스트가 리턴됩니다. 역순의 리스트를 새로 만드는 것이기 때문에, 원본 리스트가 변경되지 않음 처럼 일정 규칙으로 리스…

[Python] 파일에서 특정 단어 개수 세기

텍스트 파일에서 특정 단어가 몇개 있는지 개수를 세는 방법에 대해서 알아보겠습니다. 1. read()를 이용한 방법 2. readlines()를 이용한 방법 3. 정규표현식을 이용한 방법 1. read()를 이용한 방법 예제에서 사용하는 파일은 아래와 같습니다. 는 파일의 모든 텍스트를 읽어서 문자열로 리턴합니다. 아래와 같이 count 함수를 사용하여 특정 문자열 개수를 셀 수 있습니다. : 파일의 모든 내용을 문자열로 리턴 : string에서 word 개수 리턴 Output: 2. readlines()를 이용한 방법 는 파일의 텍스트를 라인 단위로 읽어서 리스트로 리턴합니다. 리스트를 순회하면서 특정 단어를 찾아 개수를 셀 수 있습니다. : 파일의 텍스트를 라인 단위로 리스트로 리턴 : 문자열에서 특정 단어 개수 세기 Output: 3. 정규표현식을 이용한 방법 로 파일의 모든 내용을 문자열로 가져오고, 문자열에서 정규표현식으로 특정 문자열 개수를 셀 수 있습니다. …

[Python] 오늘 날짜 yyyymmdd 형식 가져오기

오늘 날짜를 yyyymmdd 형식으로 가져오는 방법에 대해서 알아보겠습니다. 1. strftime()을 이용한 방법 2. f-string을 이용한 방법 3. 날짜 포맷 변경하기 1. strftime()을 이용한 방법 위 코드에서 함수를 사용하여 현재 날짜를 가져옵니다. 그런 다음 strftime() 메서드를 사용하여 날짜를 원하는 형식으로 포맷합니다. 포맷 문자열 을 나타냅니다. : 오늘 날짜, 시간 가져옴 : “yyyymmdd” 형식으로 문자열 변환 : 연도(4자리), 월(2자리), 일(2자리) 의미 Output: 2. f-string을 이용한 방법 f-string을 이용하여 아래와 같이 날짜를 문자열 포맷으로 변환할 수 있습니다. : “yyyymmdd” 형식으로 날짜를 문자열로 변환 : 연도(4자리), 월(2자리), 일(2자리) 의미 Output: 3. 날짜 포맷 변경하기 포맷은 유지하는데, 중간에 를 넣거나 다른 단어를 넣고 싶을 때, 포맷을 아래와 같이 살짝 …

[Python] 현재 파일, 디렉토리 위치 확인

현재 파이썬 파일, 디렉토리의 경로를 찾는 방법에 대해서 알아보겠습니다. 1. 현재 파일 경로 2. 현재 작업 디렉토리(Working directory) 3. 작업 디렉토리 변경 1. 현재 파일 경로 아래와 같이 현재 파일의 경로를 가져올 수 있습니다. : 파일 경로 : 파일의 절대 경로 Output: 2. 현재 작업 디렉토리(Working directory) 작업 디렉토리는 코드에서 파일을 찾거나 할 때, 상대 경로로 설정된 디렉토리를 말합니다. : 현재 작업 디렉토리 Output: 3. 작업 디렉토리 변경 는 작업 디렉토리를 로 변경합니다. Output:

[Python] 딕셔너리 내림차순 정렬

딕셔너리를 내림차순으로 정렬하는 방법에 대해서 알아보겠습니다. 1. key를 내림차순으로 정렬 2. value를 내림차순으로 정렬 3. 커스텀 객체를 갖고 있는 딕셔너리 내림차순 정렬 1. key를 내림차순으로 정렬 아래 코드는 딕셔너리 의 key를 내림차순으로 정렬합니다. sorted 함수는 아래와 같은 인자를 받아서 딕셔너리를 정렬합니다. 여기서 key 인자는, 딕셔너리의 key-value 값 중에 어떤 것을 사용하여 정렬할 것인지 의미하는 것으로, 은 key를 의미하고, 은 value를 의미합니다. 는 item을 key를 오름차순으로 정렬 는 item을 key를 내림차순으로 정렬 람다식 는 딕셔너리의 key 값을 사용하여 정렬하라는 의미 Output: 2. value를 내림차순으로 정렬 다음은 value를 내림차순으로 정렬하는 예제입니다. 로 내림차순 정렬 람다식 는 딕셔너리의 value 값을 사용하여 정렬하라는 의미 Output: 3. 커스텀 객체를 갖고 있는 딕셔너리 내림…

[Python] 하위 폴더 파일 개수 확인, 3가지 방법

하위 디렉토리의 모든 파일 개수를 세는 방법에 대해서 알아보겠습니다. 1. os.walk()를 이용한 방법 2. glob()을 이용한 방법 3. os.listdir()을 이용한 방법 1. os.walk()를 이용한 방법 는 dir 디렉토리 하위의 모든 파일 및 폴더를 순회하면서 파일 이름 등의 정보를 전달합니다. : 특정 디렉토리 아래의 파일들이 리스트로 전달됨, 리스트의 개수를 더하여 전체 파일 개수를 셈 Output: 2. glob()을 이용한 방법 은 인자로 전달된 경로의 하위 파일 리스트를 리턴합니다. 리스트의 개수를 세서 파일 개수를 확인할 수 있습니다. glob에서 는 하위 디렉토리 및 파일의 경로를 가져와서 리스트로 리턴 으로 시작하는 숨겨진 파일들은 가져오지 않음 Output: 디렉토리가 아닌, 파일 개수만 세기 glob은 디렉토리와 파일의 전체 경로를 리스트로 리턴하기 때문에, 아래와 같이 로 파일만 분류하여 개수를 셀 수 있습니다. 3. os.listdir()…

[Python] 문자열 위치 모두 찾기

문자열에서 특정 문자열이 있는 위치(Index)를 하나가 아닌, 문자열에 있는 모든 위치를 찾는 방법을 알아보겠습니다. 1. find()를 이용한 방법 2. 정규표현식을 이용한 방법 3. index()를 이용한 방법 1. find()를 이용한 방법 은 text라는 문자열에서 substring이라는 문자열의 위치를 왼쪽부터 찾고, 가장 먼저 찾은 문자열의 Index를 리턴합니다. 찾는 문자열이 없으면 는 -1 리턴 아래 예제에서 가장 먼저 찾은 “Python” 문자열은 Index 0의 “Python”이기 때문에 는 0 리턴 Output: 모든 문자열의 위치 찾기 위의 예제는 찾는 문자열이 여러개 있어도 하나의 위치만 리턴합니다. 문자열이 있는 모든 위치를 찾으려면 반복문을 사용하여 반복적으로 찾도록 구현해야 합니다. 는 text에서 substring 문자열을 start 인덱스부터 찾습니다. 아래와 같이 while문으로 반복적으로 모든 문자열의 위치를 찾을 수 있음 문자열을 찾았다면,…

[Python] 년, 월, 일 받아서 요일 출력

특정 년도, 월, 일 정보를 받아서, 해당 날짜에 대한 요일을 찾는 방법에 대해서 알아보겠습니다. 1. datetime과 strftime()를 이용한 방법 2. 요일을 영어가 아닌 한글로 출력 1. datetime과 strftime()를 이용한 방법 아래와 같이 년, 월, 일을 입력 받고, 그 날짜에 해당하는 요일을 가져올 수 있습니다. : 입력 받은 날짜에 대한 datetime 객체 생성 : 는 날짜에 대한 요일을 문자열로 생성하여 리턴 Output: 만약 사용자로부터 년, 월, 일을 입력받고 싶다면 아래와 같이 input을 사용할 수 있습니다. 2. 요일을 영어가 아닌 한글로 출력 은 요일을 영어로 출력하였는데, 만약 한글로 출력하고 싶다면 요일 정보를 받아서, 한글로 요일이 정의된 리스트를 만들어서 매핑을 해야 합니다. 는 요일 정보를 0~6의 값으로 리턴(0은 월요일 6은 일요일) 처럼 요일 값 0에서 6에 해당하는 한글 요일 이름 정의 로 요일 값을 한글 이름으로 변…

[Python] 딕셔너리 value로 key 찾기

딕셔너리는 key-value 데이터를 저장하는데, value 값으로 key 값을 찾는 방법에 대해서 알아보겠습니다. 딕셔너리는 처럼, key 값으로 value를 쉽게 찾을 수 있지만, value로 key를 찾는 함수는 제공하지 않습니다. 이 때문에, 직접 구현해줘야 합니다. 1. for문을 이용한 방법 2. filter()를 이용한 방법 3. 리스트 컴프리헨션을 이용한 방법 1. for문을 이용한 방법 아래와 같이 for문으로 딕셔너리를 탐색하면서, 특정 value 값을 갖고 있는 아이템을 찾고, 그 아이템의 key를 찾을 수 있습니다. 딕셔너리에서 key는 중복 값이 없지만, value는 중복 값이 있을 수 있어, 특정 value에 대한 key가 1개 이상이 될 수 있음 : 딕셔너리를 key, value로 순회 : 특정 value를 갖고 있는 key를 리스트에 저장 Output: 2. filter()를 이용한 방법 는 key-value 쌍을 갖고 있는 items에 대해서 l…

[Python] 어떤 날짜가 몇주차 인지 확인

특정 날짜가 몇주차인지 계산하는 방법에 대해서 알아보겠습니다. 1. 특정 날짜가 몇주차인지 확인 2. 사용자로부터 날짜 입력받아서 몇주차인지 확인 3. 오늘 날짜가 몇주차인지 확인 1. 특정 날짜가 몇주차인지 확인 은 날짜 정보를 특정 포맷으로 변경해주는데, 는 날짜에 대한 몇주차 정보를 문자열로 리턴합니다. 이것을 이용하여 다음과 같이 특정 날짜가 몇주차인지 계산할 수 있습니다. : 날짜가 속한 주차 정보를 문자열로 리턴 Output: 2. 사용자로부터 날짜 입력받아서 몇주차인지 확인 사용자로부터 직접 날짜를 입력받으려면 다음과 같이 함수를 사용하여 구현할 수 있습니다. 날짜를 입력받아 주차를 계산하는 방법은 위와 동일합니다. Output: 3. 오늘 날짜가 몇주차인지 확인 오늘 날짜가 몇주차인지 확인하려면, 함수로 현재 시간에 대한 datetime 객체를 생성해야 합니다. 그리고, 생성된 datetime에서 몇주차인지 찾는 방법은 위와 동일합니다. Output:

[Python] 모든 공휴일 날짜 가져오기

holidays 라이브러리를 사용하여 특정 년도의 공휴일 날짜를 가져오는 방법에 대해서 알아보겠습니다. holidays 라이브러리는 아래와 같이 pip로 설치할 수 있습니다. 1. 한국의 공휴일 날짜 가져오기 2. 다른 나라의 공휴일 날짜 가져오기 1. 한국의 공휴일 날짜 가져오기 아래 예제는 한국의 2023년의 모든 공휴일 날짜와 이름을 출력하는 예제입니다. : 한국의 2023년 공휴일 정보를 가져옴, 2023년 대신에 확인하고 싶은 년도를 인자로 입력하면 됨 : 모든 date와 name 정보를 리턴 Output: 2. 다른 나라의 공휴일 날짜 가져오기 일본 공휴일 Output: 미국 공휴일 Output:

[Python] 2차원 리스트 합/평균 계산

2차원 리스트의 평균을 계산하는 방법을 소개합니다. 행에 대한 합계 및 평균 열에 대한 합계 및 평균 전체 요소들의 합계 및 평균 1. 2차원 리스트의 합계/평균 계산 2. zip(*data)에 대한 간단한 설명 1. 2차원 리스트의 합계/평균 계산 아래와 같이 2차원 리스트의 행/열의 합계 및 평균을 계산할 수 있습니다. : 2차원 리스트의 같은 열끼리 묶어서 튜플로 리턴 : 같은 행의 요소들끼리 합계 계산하여 리스트 리턴 : 같은 행의 합계를 행의 요소 개수로 나눠서 평균 계산 : 모든 행의 합계를 리스트의 전체 요소 개수로 나눠서 리스트 평균 계산 Output: 2. zip(*data)에 대한 간단한 설명 처럼 인자로 를 전달하면 리스트의 각 행에서 첫번째 열의 요소를 튜플로 묶습니다. 위 코드의 실행 결과는 다음과 같으며, 각 열의 요소들끼리 묶여서 출력되었습니다.

[Python] 2차원 리스트 슬라이싱, 다양한 예제

2차원 리스트 슬라이싱에 대한 다양한 예제를 소개합니다. 1. 특정 범위의 행(row) 추출 2. 특정 행(row) 추출 3. 특정 범위 열(column)에 대한 행 추출 4. 특정 범위의 열 추출 5. 특정 열(column) 추출 6. 특정 조건을 만족하는 행만 가져오기 7. 특정 조건을 만족하는 열만 가져오기 1. 특정 범위의 행(row) 추출 는 2차원 리스트의 Index 0부터 1까지의 행에 해당하는 첫번째와 두번째 행을 가져옵니다. Output: 2. 특정 행(row) 추출 특정 행만 추출하려면 아래와 같이 index 범위를 설정하면 됩니다. Output: 3. 특정 범위 열(column)에 대한 행 추출 특정 열의 범위에 해당하는 행 값만 가져올 때 아래와 같이 구현할 수 있습니다. 아래 예제는 모든 행을 가져오는데, 2열부터 마지막 열에 해당하는 값들만 가져옴 Output: 4. 특정 범위의 열 추출 특정 범위의 열을 추출하여 하나의 리스트에 저장하려면 아래와 같이 구…

[Python] 공휴일, 주말 확인 방법

어떤 날짜가 공휴일 또는 휴일인지 확인하는 방법에 대해서 알아보겠습니다. 1. 공휴일 확인 방법 2. 주말 확인 방법 1. 공휴일 확인 방법 휴일 외에, 개천절 같은 공휴일은 holidays 라이브러리로 확인할 수 있습니다. holidays 라이브러리는 아래와 같이 pip로 설치할 수 있습니다. 아래 예제는 holidays를 사용하여 어떤 날짜가 공휴일인지 확인하는 예제입니다. : 대한민국 공휴일에 대한 holidays 객체 생성 : 문자열을 date 객체로 변환 : 날짜가 공휴일에 포함되어있는지 체크 Output: 2. 주말 확인 방법 어떤 날짜가 주말(토요일, 일요일)인지 확인하려면 datetime의 weekday()를 이용하여 구현할 수 있습니다. : 특정 날짜의 datetime 객체 생성 : 특정 날짜의 요일 정보를 0에서 6의 숫자로 리턴 (0: 월요일, 1: 화요일, …, 6: 일요일) : 요일이 토요일인지 일요일인지 확인 Output:

[Python] 대소문자 구분 없이 비교

문자열을 대소문자 구분 없이 같은지 비교하는 방법에 대해서 알아보겠습니다. 1. lower(), upper()를 이용한 방법 2. casefold()를 이용한 방법 3. 정규표현식을 이용한 방법 1. lower(), upper()를 이용한 방법 두개의 문자열을 비교할 때, 모두 소문자로 변경하여 비교하거나 대문자로 변경하여 비교하면 대소문자 구분 없이 같은지 비교할 수 있습니다. : 문자열을 소문자로 변경 : 문자열을 대문자로 변경 Output: lower()와 upper()의 리턴 값을 출력해보면 아래와 같이 소문자, 대문자로 변환됩니다. Output: 2. casefold()를 이용한 방법 도 와 동일하게 소문자로 변경합니다. 차이점은 의 경우 다른 언어의 대소문자도 변경하지만 의 경우 영어만 소문자로 변경합니다. 대소문자가 있는 다른 언어가 포함된 문자열을 비교한다면 보다 로 비교하는 것이 좋습니다. Output: 아래 예제를 보시면, casefold()는 독일어의 대문자…

[Python] 2진수 변환 함수, 3가지

10진수를 2진수로 변환하는 함수와 방법에 대해서 알아보겠습니다. 1. bin() 함수를 이용한 방법 2. 비트 연산자를 이용한 방법 3. 반복문으로 2진수 변환 1. bin() 함수를 이용한 방법 은 10진수 n을 2진수의 문자열로 변환합니다. 리턴 값에 2진수를 의미하는 가 문자열 앞에 붙음 리스트 슬라이싱을 이용하여 를 제거할 수 있음 Output: 2. 비트 연산자를 이용한 방법 비트 연산자 와 를 이용하여 직접 변환하는 코드를 구현할 수 있습니다. 아래 코드는 다음과 같은 순서로 동작합니다. 10진수의 1비트에 해당하는 값을 문자열에 저장 10진수를 오른쪽으로 1bit 이동 10진수의 1비트에 해당하는 값을 문자열의 끝에 추가 10진수가 0이 될 때까지 반복하고, 문자열을 거꾸로 뒤집으면 2진수가 됨 Output: 3. 반복문으로 2진수 변환 10진수를 2로 나누면서 나머지를 2진수 문자열에 저장하면서, 직접 2진수로 변환합니다. 10진수가 0인 경우, binary_str…

[Python] 2차원 리스트 깊은 복사, 2가지 방법

2차원 리스트를 깊은 복사(deep copy) 방식으로 복사하는 방법에 대해서 알아보겠습니다. 1. copy.deepcopy()를 이용한 방법 2. 리스트 컴프리헨션을 이용한 방법 1. copy.deepcopy()를 이용한 방법 는 original_list를 깊은 복사한 리스트를 리턴합니다. 깊은 복사로 리스트를 복사하면, 원본 또는 복사된 리스트를 변경했을 때 서로의 객체 값을 변경하지 않음 얕은 복사로 리스트를 복사하면, 원본 또는 복사된 리스트의 값 변경 시, 동시에 값이 변경 됨 아래와 같이 deepcopy()로 복사하고, 값을 변경한 뒤에 다시 결과를 출력해보면 서로의 객체 값에 영향을 주지 않는 것을 확인할 수 있습니다. Output: 2. 리스트 컴프리헨션을 이용한 방법 리스트 컴프리헨션을 이용하여 깊은 복사를 할 수 있습니다. 아래와 같이 2차원 리스트에 대해서 리스트 슬라이싱을 이용하여 1차원 리스트를 복사하고, 그 리스트를 2차원 리스트에 저장합니다. for문으로…

[Python] 텍스트 파일 줄 수 세기

텍스트 파일의 문자열들이 전체 몇 라인인지, 줄 수를 세는 방법에 대해서 알아보겠습니다. 1. file.readlines()를 이용한 방법 2. file.readline()을 이용한 방법 3. enumerate()를 이용한 방법 1. file.readlines()를 이용한 방법 는 파일의 텍스트들을 라인으로 읽어서 리스트로 리턴합니다. 즉, 리스트의 크기(size)를 계산하면 텍스트 파일의 줄 수를 알 수 있습니다. Output: 2. file.readline()을 이용한 방법 는 파일에서 한 줄을 읽고 문자열을 리턴합니다. 아래와 같이 while을 이용하여 더 이상 읽을 것이 없을 때까지 읽으면서 라인 수를 셀 수 있습니다. Output: 3. enumerate()를 이용한 방법 은 파일에 대해서 라인 번호와 문자열을 튜플로 리턴하는데, 이걸 리스트로 변환하고, 리스트의 크기를 구하면 전체 라인 수가 됩니다. Output: enumerate() 리턴 값 을 출력해보면, 아래와 같…

[Python] 문자열에서 한글만 가져오기/제거하기

문자열에서 한글만 가져오거나, 한글이 아닌 다른 문자들만 가져오는 방법에 대해서 알아보겠습니다. 한글, 영어, 숫자 등의 문자가 섞여있고 한글만 필요할 때 또는 한글만 제거해야하는 경우, 정규표현식으로 한글을 찾아서 예외 처리할 수 있습니다. 1. 한글만 추출 2. 한글만 제거 3. 한글, 공백 모두 제거 1. 한글만 추출 re.sub(pattern, repl, str)는 str에서 패턴에 해당하는 문자열을 찾고 repl로 변환합니다. 아래 예제와 같이 문자열에서 한글이 아닌 문자들을 찾고, 빈 문자열로 변환하여 제거할 수 있습니다. 한글이 아닌 문자를 제거하면 문자열은 한글만 남게 됩니다. : 한글이 아닌 문자들을 의미하는 패턴 : NOT의 의미로, 한글 패턴과 함께 사용되어 한글이 아닌 문자들을 의미하게 만들 수 있음 : 한글을 제외한 문자들을 찾아서 빈 문자열로 변환 Output: 2. 한글만 제거 위에서 사용한 정규표현식에서 을 제거하면, 문자열에서 한글만 제거할 수 …

[Python] 코드 실행 시간 측정

어떤 기능을 구현했을 때, 퍼포먼스가 좋지 않으면 문제가 될 때가 있습니다. 또는, 기존 코드가 느려서 개선했는데 얼마나 개선이 되었는지 시간을 측정해야할 때가 있습니다. 이 글에서는 코드의 실행 시간이 얼마인지 측정하는 방법에 대해서 소개합니다. 1. perf_counter()으로 시간 측정 2. time()으로 시간 측정 3. timeit으로 시간 측정 1. perf_counter()으로 시간 측정 는 CPU 시간으로 수행 시간을 측정하여, 조금 더 정확하게 시간을 측정할 수 있습니다. 는 시간을 리턴하며, 코드 실행 전/후에 시간을 기록하고 차를 계산하여 실행 시간을 구할 수 있음 아래와 같이 어떤 코드의 실행 시간을 측정할 수 있습니다. Output: 2. time()으로 시간 측정 UTC time을 초단위로 리턴합니다. UTC는 1970년 1월 1일을 0초로 현재까지 흐른 시간을 계산하는 방식입니다. 위의 예제와 동일하게, 은 호출 시점의 시간을 리턴하며, 코드 실행 전…

[Python] 파이썬 두 리스트 같은 값 찾기

두개의 리스트가 있고, 각각 다양한 요소를 갖고 있을 때, 두 리스트가 공통으로 갖고 있는 값을 찾는 방법에 대해서 알아보겠습니다. 1. 반복문으로 공통 요소 찾기 2. 리스트 컴프리헨션으로 공통 요소 찾기 3. Set로 공통 요소 찾기 1. 반복문으로 공통 요소 찾기 for문을 사용하여 리스트를 순회하면서 다른 리스트에 그 값이 포함되어있는지 확인할 수 있습니다. 이렇게 확인하면서 공통 요소를 리스트에 저장하면 됩니다. Output: 2. 리스트 컴프리헨션으로 공통 요소 찾기 for문 대신에 리스트 컴프리헨션을 사용하면, 더 짧은 코드로 같은 내용을 구현할 수 있습니다. 사용하는 기술은 다르지만, 리스트를 순회하면서 다른 리스트에 공통 요소가 있는지 확인하는 알고리즘은 동일합니다. Output: 3. Set로 공통 요소 찾기 Set는 중복 값을 허용하지 않는 자료구조이며, 이라는 함수를 제공하여 쉽게 공통 요소를 찾을 수 있게 도와줍니다. 는 set1과 set2의 공통 요소만 찾…