본문 바로가기
728x90
반응형
SMALL

Programming/Python62

[Python] YAML (YAML Ain’t Markup Language) YAML (YAML Ain’t Markup Language) 데이터 쓰기를 위한 또 다른 텍스트 형식이다. YAML은 JSON보다 인간 친화적이므로 소프트웨어에서 작업을 설명하는 데 자주 사용된다. YAML syntax Python과 마찬가지로 YAML은 들여쓰기를 사용하여 문서 구조를 지정한다. 그러나 YAML은 공백만 사용할 수 있으며 탭은 사용할 수 없다. 파이썬과의 또 다른 유사점은 # 주석이 줄로 시작하여 줄 끝까지 계속된다는 것이다. List 목록은 한 줄로 작성할 수 있다. [switchport mode access, switchport access vlan, switchport nonegotiate, spanning-tree portfast, spanning-tree bpduguard en.. 2022. 8. 17.
UnicodeEncodeError: 'cp949' codec can't encode character illegal multibyte sequence UnicodeEncodeError: 'cp949' codec can't encode character illegal multibyte sequence Python의 유니코드가 UTF-8이 아니기 때문에 비영어권 사용자들은 코딩할때 별도의 옵션을 사용해야 한다. 파일을 처리할때도 cp949 오류가 발생하는데 인코딩 타입을 지정하면 해결할 수 있다. # cp949 오류 file = open('파일명', 'w') # 인코딩 지정 file=open('파일명', 'w', encoding='UTF-8') 예제 from IPython.core.magic import register_line_cell_magic @register_line_cell_magic def writetemplate(line, cell): wit.. 2022. 8. 17.
[Python] JSON (JavaScript Object Notation) JSON (JavaScript Object Notation) 데이터 저장 및 교환을 위한 텍스트 형식이다. JSON 구문은 Python과 매우 유사하며 사용자 친화적이다. CSV의 경우 Python에는 JSON 형식의 데이터를 쉽게 쓰고 읽을 수 있는 모듈이 있다. Reading # sw_templates.json { "access": [ "switchport mode access", "switchport access vlan", "switchport nonegotiate", "spanning-tree portfast", "spanning-tree bpduguard enable" ], "trunk": [ "switchport trunk encapsulation dot1q", "switchport mode.. 2022. 8. 17.
[Python] CSV (Comma-Separated Value) CSV (Comma-Separated Value) 테이블 형식 데이터 형식 (tabular data format)이다 (ex: 테이블의 데이터 또는 데이터베이스의 데이터일 수 있음). 이 형식에서 파일의 각 행은 테이블의 행이다. 형식 이름에도 불구하고 구분 기호는 쉼표일 수 없다. 구분 기호가 다른 형식은 고유한 이름을 가질 수 있다 (ex: TSV (탭으로 구분된 값)). 그러나 CSV라는 이름은 일반적으로 모든 구분 기호를 의미한다. # Example of a CSV file (sw_data.csv) hostname,vendor,model,location sw1,Cisco,3750,London sw2,Cisco,3850,Liverpool sw3,Cisco,3650,Liverpool sw4,Cisco.. 2022. 8. 17.
[Python] datetime datetime datetime 모듈은 날짜와 시간을 조작하는 클래스를 제공한다. 모듈 calendar 일반 달력 관련 함수 time 시간 접근과 변환 zoneinfo IANA 표준시 데이터베이스를 나타내는 구체적인 표준시 패키지 dateutil 시간대와 구문 분석 지원이 확장된 라이브러리 예제 from datetime import datetime start_time = datetime.now() # 알고리즘 ~ end_time = datetime.now() print('elapsed time => ', end_time-start_time) https://docs.python.org/ko/3/library/datetime.html datetime — 기본 날짜와 시간 형 — Python 3.10.6 문서.. 2022. 8. 17.
[Python] zip zip python에서 zip()은 내장함수로 같은 길이의 리스트를 같은 인덱스끼리 잘라서 리스트로 반환을 해주는 역할을 한다. retrun하는 객체는 zip object이므로 set이나 list와 같은 sequence 객체로 변환해야 요소의 값을 확인 가능하다. for문에서 사용할 경우, zip object 내부의 요소별로 return한다. zip([1, 2, 3], [4, 5, 6]) list(zip([1, 2, 3], [4, 5, 6])) [(1, 4), (2, 5), (3, 6)] list(zip('ABC', 'EFG')) [('A', 'E'), ('B', 'F'), ('C', 'G')] a = [1, 2, 3, 4, 5] b = ['a', 'b', 'c', 'd', 'e'] c = list(zi.. 2022. 8. 7.
[Python] Logging Module Logging Module logging 모듈은 python 자체에 내장되어 있는 모듈이다. logging은 소프트웨어가 작동 중일 때 발생하는 여러 사건을 추적하고, 이를 통해 어떤 사건이 발생했는지에 따라 어떤 해결책을 내야하는지 판단한다. def cal(a, b): try: result = a/b except ZeroDivisionError: logger.exception("Division by zero is not possible") else: return result 위 코드에서 b에 0을 대입하면 에러가 발생할 것이다. 개발 코드 중에 실수로 b에 0을 대입할 가능성이 있다면 언제 어떻게 에러가 발생하는지 기록으로 남겨두어야 한다. 디버깅을 편리하고 효율적으로 하기 위함이다. Level 설정 .. 2022. 2. 21.
[Python] 날짜와 시간 다루기 datetime 패키지 datetime 패키지에서는 날짜와 시간을 함께 저장하는 datetime 클래스, 날짜만 저장하는 date 클래스, 시간만 저장하는 time 클래스, 시간 구간 정보를 저장하는 timedelta 클래스 등을 제공한다. import datetime as dt datetime 클래스 datetime 클래스에는 객체를 생성하지 않고도 바로 클래스에서 사용할 수 있는 클래스 메서드라는 것을 제공한다. 가장 대표적인 것이 현재 시각을 출력하는 now() 메서드이다. x = dt.datetime.now() --> datetime.datetime(2020, 10, 2, 15, 27, 4, 517207) now 클래스 메서드는 컴퓨터의 현재 시각을 datetime 클래스 객체로 만들어 반환한다... 2022. 2. 15.
[Python] pip (패키지 매니저) pip (패키지 매니저) pip는 python의 각종 라이브러리들을 설치 및 관리해주는 패키지 매니져이다. pypi사이트 뿐 아니라 로컬 모듈도 설치할 수 있다. pip라는 도구는 python 3.4 버전부터 정식으로 포함되어 사용가능하다. (https://pypi.python.org/pypi) pip 사용 pip는 자주 업데이트 되므로 가상환경에서 업데이트해주는 것이 좋다. $ pip install --upgrade pip pip 패키지 검색 $ pip search 검색 pip 설치 리스트 확인 현재 추가된 가상환경 내에 라이브러리 목록을 보여주는 명령어가 2가지가 있다. $ pip list $ pip freeze # pip freeze는 pip install에 맞는 포맷으로 리스트를 뿌려주어 requ.. 2022. 2. 10.
[Python] 가상환경 (pyenv / virtualenv / conda) 가상환경 python에서는 한 라이브러리에 대해 하나의 버전만 설치가 가능하다. 여러개의 프로젝트를 진행하게 되면 문제가 발생한다. 따라서 작업을 바꿀때마다 다른 버전의 라이브러리를 설치해야한다. 이를 방지하기 위한 격리된 독립적인 가상환경을 제공한다. 일반적으로 프로젝트마다 다른 하나의 가상환경을 생성한 후 작업을 시작하게 된다. venv : Python 3.3 버전 이후 부터 기본모듈에 포함됨 virtualenv : Python 2 버전부터 사용해오던 가상환경 라이브러리, Python 3에서도 사용가능 conda : Anaconda Python을 설치했을 시 사용할 수있는 모듈 pyenv : pyenv의 경우 Python Version Manger임과 동시에 가상환경 기능을 플러그인 형태로 제공 py.. 2022. 2. 10.
728x90
반응형
LIST