crontab과 python script 파일을 연동시킬 때 절대 경로 문제가 많이 발생하게 되는데요. 특히나, 스크립트 내에 google api라던지 다른 api와 연동하기 위해 파일을 읽어들일 때 이런 이슈가 발생하곤 합니다. 어떻게 발생했는지 알아보고, 어떻게 python script file의 현재 경로를 얻어오는지도 알아봅시다. 먼저 홈 디렉토리의 test 폴더에 1.py와 emoji.txt가 있습니다. emoji.txt를 읽기 전용으로 열기만 하고 끝내는 프로그램입니다. 이것을 test 폴더 내에서 python3 1.py를 수행했으면 사실상 별 문제가 없었을 겁니다. 그런데, 주기적으로 실행하는 스케쥴러 같은 경우, test 폴더에서 수행하지는 않을 겁니다. 어? 없다고 뜨네요? 왜 그럴까요?..
코딩/파이선 검색 결과
파이썬에서 딕셔녀리의 첫 번째 원소를 어떻게 가져올까요? iter와 next를 적절히 잘 이용해서 가져오는 방법이 있습니다. 먼저 이해해야 할 것은 iter입니다. object로부터 iterator를 얻어오는데요. 이터레이터. 무언가를 순회하기 위한 도구 정도로 이해하면 적당합니다. 다음 원소를 가리키게 하는 메서드가 있는데요. 그것이 바로 아래에서 설명드릴 next입니다. 설명을 읽어 보면, next item을 이터레이터로부터 얻어온다고 되어 있습니다. 만약에, exhausted가 되면, Stopiteration을 리턴하는데요. default 값이 있다면 default 값을 리턴합니다. 여기까지 내용을 종합해서 정리해 봅시다. 일단, 저는 python 3.9를 쓰고 있으니, 기본적으로 Ordered가 ..
안녕하세요. 이번 시간에는 파이썬의 dictionary에서 key를 remove 하는 방법을 알아보겠습니다. 먼저, dic.pop("1")은 키 "1"을 제거합니다. 1 ~ 5번째 줄에 키 "1", "2", "3"을 넣은 딕셔너리가 선언되었는데요. 이 딕셔너리에서, 키 값 "1"을 가지는 것을 제거하였습니다. 결과는 요래 나옵니다. "1" 이라는 키가 없습니다. 참 쉽죠? 그러면, "5"를 제거하려고 하면 어떨까요? "5"는 키 값에 들어있지 않습니다. 정상적으로 수행이 될까요? KeyError가 떨어집니다. "5"가 없기 때문에 그런 겁니다. 의외로 딕셔너리를 다루다 보면, KeyError를 꽤 많이 보는데요. 원소를 제거할 때, 키가 없으면 어떻게 처리하면 좋을까요? pop 함수의 2번째 인자에 No..
python re 모듈에는 finditer와 findall 메소드가 있습니다. 이 둘에 대해 간단하게 알아봅시다. 먼저, 이 둘을 이해하기 위해, capturing group에 대해서 간단하게 설명을 드리겠습니다. ([0-9]+)([^0-9]*)가 있는데요. () 안에 있는 것은 캡쳐가 되는 패턴을 의미합니다. 하나씩 차례대로 해석해 보면, 숫자 문자로만 이루어진 패턴과, 숫자 문자가 아닌 문자로만 이루어진 패턴이거나 빈 문자열이거나, 이렇게 두 개의 패턴으로 캡쳐가 된다는 의미입니다. 예제를 보겠습니다. 먼저, "2345abcde"는 어떻게 캡쳐될까요? 숫자로만 이루어진 패턴이 "2345"이고, 숫자로 이루어지지 않거나 빈 문자열인 패턴이 뒤에 "abcde"라는 패턴으로 들어옵니다. 따라서 요렇게 캡쳐..
안녕하세요. 이번 시간에는 파이썬 operator의 itemgetter 함수에 대해 알아봅시다. 먼저, itemgetter 함수는, callable object를 리턴한다고 되어 있어요. 그래서, f = itemgetter(2)를 하면, f(r)을 불렀을 때 r[2]가 리턴된다고 되어 있습니다. 이게 무슨 소리인지 문서에 나와 있는 코드를 보겠습니다. 대충 요런 함수인데요. 일단은 뭔가 리턴하는데 g를 리턴해 버립니다. 그리고 이 g는 obj를 받습니다. 이로 미루어 보았을 때, 함수 itemgetter는 호출 함수인 caller를 리턴하고, 이 caller가 실제로 iterable한 놈을 넘겨받아서 x번째 원소를 리턴하는 일을 수행한다고 봐도 되겠군요. 그러면 이걸 어떻게 바깥에서 쓸까요? 먼저, 2번..
최근댓글