본문 바로가기

Python58

[Python] VSCode를 이용한 파이썬 개발환경 설정 파이썬 개발 환경으로 Visual Studio Code를 사용하는 개발자들이 많다. 마이크로소프트에서 제공하는 에디터인 VSCode는 가볍고 빠르면서도 다양한 익스텐션을 지원해 많은 개발자들의 사랑을 받고 있다. 우선 VSCode가 없는 사람이라면 VSCode를 설치하자. [Windows] Visual Studio Code 설치 Visual Studio Code(이하 VSCode)는 Microsoft에서 오픈소스로 개발중인 에디터 소프트웨어다. Microsoft가 무료로 공개한 이래 점점 인기가 많아져 아마도 가장 많은 개발자들이 사용하고 있는 통합 개발환 hbase.tistory.com 그리고 VSCode를 실행하자. VSCode를 실행하고 왼쪽에 있는 메뉴 중 가장 아래에 있는 '확장: 마켓플레이스'.. 2022. 8. 15.
[Python] subprocess 모듈 사용법 및 예제 subprocess는 파이썬 스크립트에서 쉘 명령 등 다른 프로세스를 실행하고 출력 결과를 가져올 수 있게 해주는 라이브러리다. subprocess 모듈은 os.system, os.spawn* 등을 대체하기 위해 만들어졌다. subprocess 사용법 call() 함수 가장 기본적인 서브 프로세스 호출명령이다. 인자로 넘겨진 값들을 이용해 바로 프로세스를 실행한다. 프로세스를 실행하고, 실행한 프로세스의 종료를 기다렸다가 리턴코드를 반환한다. 프로세스가 정상종료했으면 0을 리턴하고, 비정상 종료라면 프로세스가 반환하는 에러 코드를 가져온다. subprocess.call(args, *, stdin=None, stdout=None, stderr=None, shell=False, timeout=None) ar.. 2022. 7. 3.
[Python] 문자열 인코딩과 디코딩하는 방법 파이썬에서 문자열 데이터를 다룰 때 인코딩을 신경써야 할 경우가 있다. 영어로 구성된 텍스트 데이터야 ASCII로만 처리가 되니까 인코딩 문제가 없는데, 한글 같은 문자가 포함되어 있는 텍스트를 처리할 때에는 인코딩 문제를 신경써야 한다. 인코딩 감지 문제는 내가 만든 문자열 데이터를 내가 읽어서 처리하는 경우라면 뭘로 인코딩되어 있는지 알고 있기 때문에 데이터를 처리하는데 문제가 없다. 하지만 다른 사람이 전송한 문자열 데이터가 어떤 포맷으로 인코딩되어 있는지를 모르면 제대로 해석할 수 없다. 문자열 데이터가 어떤 형식으로 인코딩되어 있는지를 확인하기 위해서 chardet 라이브러리가 필요하다. pip로 설치해주자. $ pip install chardet chardet 모듈의 detect() 함수를 이.. 2022. 7. 2.
[Python] 파이썬으로 JSON 데이터 다루기 REST API를 사용하는 파이썬 프로그램을 작성할 때 JSON 데이터를 다루는 경우가 많다. 파이썬은 JSON 데이터를 다루기 위해 json 모듈을 내장하고 있다. 이번 포스트에서는 json 모듈을 이용해 JSON 데이터를 다루는 방법에 대해 정리해보겠다. json.loads() - JSON 문자열 파싱 json 모듈의 loads() 함수를 이용해 JSON 문자열을 파싱해 사용할 수 있다. import json json_data = ''' { "mentor": { "Name" : "Tom", "Age" : 20 }, "mentee" : { "Name" : "Eric", "Age" : 13 } } ''' json_obj = json.loads(json_data) print(json_obj) print(".. 2022. 5. 14.
[Python] 파이썬 requests 를 이용해서 REST API 호출하기 requests는 파이썬으로 REST API를 호출하는 프로그램을 작성할 때 가장 많이 사용되는 라이브러리다. requests 설치 requests가 설치되어 있지 않다면 파이썬의 패키지 매니저인 pip를 이용해서 설치할 수 있다. $ pip install requests 혹은 $ pip3 install requests 설치가 잘 되었는지 확인해보기 위해 파이썬을 인터프리터 모드로 실행해서 requests 라이브러리를 사용해보자. $ python Python 3.6.8 (default, Nov 16 2020, 16:55:22) [GCC 4.8.5 20150623 (Red Hat 4.8.5-44)] on linux Type "help", "copyright", "credits" or "license" fo.. 2022. 5. 4.
[Python] 'NameError: name 'input' is not defined' 에러 (raw_input과 input 차이) 파이썬 코딩을 하다가 다음 에러를 만나게 될 경우가 있다. NameError: name 'input' is not defined input이 정의되지 않았다는 의미다. 간단한 파이썬 프로그램 하나를 실행해보자. input_value = input("Please input your value :") print(input_value) 사용자로부터 입력을 받아 화면에 그대로 출력해주는 프로그램이다. 이 코드를 실행했을 때, 다음화면처럼 'NameError' 메시지를 받는 경우가 있다. 아무런 문제가 없어보이는 코드인데 'NameError: name 'a' is not defined' 라는 에러메시지가 발생하면서 생각한대로 코드가 동작하지 않는다. 이런 에러의 원인은 Python 2.x 버전에서 발생한다. 같은.. 2021. 7. 6.
[Python] 구글 드라이브에서 파이썬 코딩하기 - 'Colaboratory' 파이썬 프로그래밍을 할 때, 별도의 IDE 없이 웹에서도 쉽게 코드를 작성하고 실행해볼 수 있는 환경이 갖춰져 있다. 특히 구글이 제공하는 클라우드 저장소인 '구글 드라이브'의 'Colaboratory' 앱을 이용하면 구글 드라이브에 파이썬 프로그램을 작성해 저장해 놓고, 실행까지 할 수 있다. Colaboratory Colaboratory는 구글 리서치 팀에서 개발한 제품으로 웹 브라우저를 통해 파이썬 코드를 작성하고 실행할 수 있는 파이썬 개발 환경이다. 머신러닝이나 데이터 분석에 대한 교육 및 실무 작업에서 다양한 사람들과 코드를 공유하고 실행할 수 있는 환경을 제공해준다. Colaboratory는 설정 없이도 사용 가능한 호스팅 주피터(Jupyter) 메모장 서비스로 GPU를 포함한 컴퓨팅 리소스.. 2021. 7. 3.
[Python] 'PyInstaller' 설치 및 사용법 - 파이썬 바이너리(실행파일) 만들기 PyInstaller는 파이썬으로 작성된 소스파일(.py 확장자)을 바이너리 파일(예를 들어 .exe 파일)로 만들어주는 프로그램이다. 작성된 파이썬 코드를 실행하기 위해 필요한 라이브러리들을 한번에 묶어서 배포할 수 있고, 파이썬으로 작성된 코드를 사용자로부터 숨기고 싶을 때 PyInstaller의 사용을 고려해볼 수 있다. PyInstaller에 대한 자세한 내용은 PyInstaller 홈페이지에서 확인할 수 있다. (링크 : PyInstaller 홈페이지) PyInstaller 설치 PyInstaller는 파이썬 패키지 관리 도구인 pip를 이용해서 설치할 수 있다. 다음 명령을 실행하면 된다. pip install pyinstaller 만약 pip가 설치되어 있지 않은 상황이라면 pip 설치를 해.. 2021. 5. 11.
[Python] 기본 연산자들의 시간복잡도(Big-O) 정리 알고리즘 문제를 풀다보면 작성한 알고리즘의 시간복잡도(Big-O) 값을 신경써야한다. 특히 정렬이나 탐색같은 메소드는 파이썬에서 제공하는 타입의 기본 연산자들을 사용하는 경우가 많다. 이 경우 내장 메소드들의 시간 복잡도를 정확하게 알고 있어야 효율적인 알고리즘을 작성할 수 있다. 파이썬의 기본 타입들과 관련된 메소드들과 시간복잡도를 정리해보았다. 우선 변수에 값을 할당하는 바인딩(Binding)의 시간 복잡도는 O(1)이다. 다시말해서 'a = 1'이라는 할당문은 O(1)의 시간에 종료된다. 마찬가지로 산술연산, 값에 대한 비교 연산들도 모두 O(1)의 시간복잡도를 갖는다. 리스트(list) 타입의 메소드와 시간복잡도(Big-O) 리스트 타입이 제공하는 내장 메소드들과 시간 복잡도를 정리해보자. 리스트.. 2021. 5. 10.