APCPCWM_ :WP_GLOBAL_PFWP_GLOBAL_PF APCPCWM_ :WP_GLOBAL_PFWP_GLOBAL_PF 예제로보는 네트워크엔지니어를위한 Python 101

Similar documents
Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

Microsoft PowerPoint 자바-기본문법(Ch2).pptx

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi

금오공대 컴퓨터공학전공 강의자료

Tcl의 문법

Microsoft PowerPoint - chap06-1Array.ppt

PowerPoint 프레젠테이션

PowerPoint Presentation

OCW_C언어 기초

Microsoft PowerPoint - C++ 5 .pptx

슬라이드 1

PowerPoint 프레젠테이션

C# Programming Guide - Types

Microsoft PowerPoint - Perpect C 02.ppt [호환 모드]

윈도우즈프로그래밍(1)

PowerPoint 프레젠테이션

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>

11장 포인터

Microsoft PowerPoint - chap06-2pointer.ppt

PowerPoint 프레젠테이션

Microsoft PowerPoint - chap05-제어문.pptx

Microsoft PowerPoint - Java7.pptx

adfasdfasfdasfasfadf

Microsoft PowerPoint - ch07 - 포인터 pm0415

untitled

A Hierarchical Approach to Interactive Motion Editing for Human-like Figures

Microsoft PowerPoint - chap10-함수의활용.pptx

PowerPoint Presentation

10 강. 쉘스크립트 l 쉘스크립트 Ÿ 쉘은명령어들을연속적으로실행하는인터프리터환경을제공 Ÿ 쉘스크립트는제어문과변수선언등이가능하며프로그래밍언어와유사 Ÿ 프로그래밍언어와스크립트언어 -프로그래밍언어를사용하는경우소스코드를컴파일하여실행가능한파일로만들어야함 -일반적으로실행파일은다

JVM 메모리구조

PowerPoint Presentation

예제 1.1 ( 관계연산자 ) >> A=1:9, B=9-A A = B = >> tf = A>4 % 4 보다큰 A 의원소들을찾을경우 tf = >> tf = (A==B) % A

슬라이드 1

Visual Basic 반복문

chap 5: Trees

설계란 무엇인가?

Java ...

Microsoft PowerPoint 세션.ppt


Microsoft PowerPoint - e pptx

학습목표 함수프로시저, 서브프로시저의의미를안다. 매개변수전달방식을학습한다. 함수를이용한프로그래밍한다. 2

임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

Microsoft PowerPoint - additional01.ppt [호환 모드]

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

<4D F736F F F696E74202D20C1A63036C0E520BCB1C5C3B0FA20B9DDBAB928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

chap x: G입력

Microsoft PowerPoint - chap-03.pptx

untitled

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

Microsoft PowerPoint - chap13-입출력라이브러리.pptx

Microsoft PowerPoint - C프로그래밍-chap03.ppt [호환 모드]

17장 클래스와 메소드

<4D F736F F F696E74202D20C1A633C0E52043C7C1B7CEB1D7B7A5B1B8BCBABFE4BCD2>

JAVA PROGRAMMING 실습 02. 표준 입출력

Microsoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100

설계란 무엇인가?

Microsoft PowerPoint - 제11장 포인터(강의)

Microsoft PowerPoint - chap03-변수와데이터형.pptx

PowerPoint 프레젠테이션

Microsoft PowerPoint - 제11장 포인터

C 프로그램의 기본

Microsoft Word _mentor_conf_output5.docx

Microsoft PowerPoint 웹 연동 기술.pptx

쉽게 풀어쓴 C 프로그래밍

Microsoft PowerPoint - 3ÀÏ°_º¯¼ö¿Í »ó¼ö.ppt

(......).hwp

쉽게 풀어쓴 C 프로그래밍

OCaml

PowerPoint Presentation

11 템플릿적용 - Java Program Performance Tuning (김명호기술이사)

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조

4장.문장

목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2

쉽게 풀어쓴 C 프로그래밍

8장 문자열

JAVA PROGRAMMING 실습 02. 표준 입출력

Microsoft Word - FunctionCall

Data Structure

슬라이드 1

Lab 3. 실습문제 (Single linked list)_해답.hwp

PowerPoint 프레젠테이션

Microsoft PowerPoint - 2주차-1차시 (강의자료) ch01 - C Programming 기초 (part 2)

Microsoft PowerPoint - Lesson2.pptx

슬라이드 1

1. 객체의생성과대입 int 형변수 : 선언과동시에초기화하는방법 (C++) int a = 3; int a(3); // 기본타입역시클래스와같이처리가능 객체의생성 ( 복습 ) class CPoint private : int x, y; public : CPoint(int a

C 언어 프로그래밊 과제 풀이

PowerPoint 프레젠테이션

PowerPoint Presentation

프로그래밍개론및실습 2015 년 2 학기프로그래밍개론및실습과목으로본내용은강의교재인생능출판사, 두근두근 C 언어수업, 천인국지음을발췌수정하였음

슬라이드 1

02장.배열과 클래스

프로그램의실행화면 주석 (comment) 두수의합 : 300 /* 두개의숫자의합을계산하는프로그램 */ 주석은코드를설명하는글입니다. 주석 3 가지방법의주석 주석의예 /* 한줄로된주석 */ /* 저자 : 홍길동날짜 : 2013.

1.2 자료형 (data type) 프로그램에서다루는값의형태로변수나함수를정의할때주로사용하며, 컴퓨터는선언된 자료형만큼의메모리를확보하여프로그래머에게제공한다 정수 (integer) 1) int(4 bytes) 연산범위 : (-2 31 ) ~ (2 31 /2)-

Microsoft PowerPoint - 11주차_Android_GoogleMap.ppt [호환 모드]

K&R2 Reference Manual 번역본

쉽게

PowerPoint Template

강의 개요

OCW_C언어 기초

PowerPoint 프레젠테이션

Transcription:

예제로보는 네트워크엔지니어를위한 Python 101

오늘의목표 NO

NO

YES

Python Basic Indentation Python에서 Indentation으로 Code Block(Scope) 를구분 동일한 Code Block은동일한방법 (Space, Tab) 으로구분해야함 하위레벨의 Code Block 나오기전에는 : ( 콜론 ) 사용 Indent Example i = 10 While( i < 10): print( i= + i) i=i+1 Indent Example i = 10 While( i < 10): print( i= + i) i=i+1 IndentationError: unident does not match any outer indentation level

Python Basic 변수 변수명으로문자 / 숫자 / _ 가사용가능하며대소문자구분 변수선언시, 별도의변수 Type이존재하지않음 변수의할당되는값에따라서변수 Type이지정됨 객체단위로지정이되며, 별도의초기화없이바로사용이가능 동일객체인지 id( 변수명 ) 명령을사용하여확인이가능하다. ( 일종의메모리참조값 )

Python Basic 수치형자료 숫자를나타내는자료형 Int, long, float, complex 등이존재

Python Basic 문자열 문자열은,, 로묶으며, 다수의문자열은 ( 홑따음표 ) 3개를묶는다. 문자열내부에는다른변수값을포함하여출력할수있으며, 이경우에는변수가포함될위치에 %s를붙인다. 이후 print 명령시에 % 를쓰고 %s에들어갈변수명을입력한다. 이를 Placeholder이라고한다. Placeholder에서만약 2개이상의변수를포함하고자할때에는 % 뒤에변수명기입시, ( ) 로묶어준다. Placeholder Example name = zigi blog = zigispace.net mystr = %s Blog : %s print(mystr %(name,blog))

Python Basic List 다수의객체를하나의객체로관리하는데이터타입 [ ] ( 대괄호 ) 로묶어주며, 대괄호내에서는, 로각객체를구분한다. [ ] 안의항목들은각각의 index position을가지며, index는 0부터시작. (zero base) index를사용하여각객체에접근가능하며, : 을사용하며, index 범위지정도가능. List에항목을추가할경우에는 append, insert, extend 메서드사용가능 List 내의항목을삭제하려고할경우에는 del List_Var[index] 으로가능 List Example blog = [ zigi, space ] blog.append(.net ) blog.insert(0, http:// )

Python Basic Tuple 다수의객체를하나의객체로관리하는데이터타입 ( ) ( 괄호 ) 로묶어주며, 대괄호내에서는, 로각객체를구분한다. List는생성이후, 수정이가능하만 Tuple은수정불가. ( 읽기전용 ) 읽기전용이기때문에 List에비해서처리속도가빠르다 tuple Example myt = (1,2,3) First, second = 10, 20 Blog = ( zigi, space )

Python Basic Dictionary / Map 다수의객체를하나의객체로관리하는데이터타입이라는것은 List와동일하지만, Dictionary에저장된값은 key 와 value 를 Mapping 하여관리된다 { } ( 중괄호 ) 로묶어주며, 중괄호내에서는, 로각객체를구분한다. 하나의 Key 과 Value는 : 로구분한다. Dictionary에있는값을 key 를이용해서접근이가능하다. Dictionary Example dns = { kt : 168.126.63.1, lg : 164.124.107.9, sk : 210.220.163.82 } dns[ kt ] >>> for op in dict.keys():... print dict[op] + ' : ' + op

Python Basic If ( 조건문 ) 조건문에따라서구문실행, 조건에만족하지않을경우에실행하기위해서는 else 사용. 구문을맞추기위해서는반드시 indent를지켜야함 다수의조건을위해서는 elif 명령을사용. if 조건식 : 명령문 명령문 If Example if ( grade = A ): print Very Good elif ( grade = B ): print Good Else: print Get out! if 조건식 : 명령문 elif 조건식 : 명령문 else: 명령문

Python Basic while ( 반복문 ) 조건식이 True 인동안반복문수행 While 조건식 : 반복구문 while Example count = 10 while count >= 0: print count count = count -1

Python Basic For ( 반복문 ) Sequence형혹은 Iteration이가능한객체에대해서순차적으로반복문수행 Sequence : List, Tuple, Dictionary, String Iterator : 내장함수 iter() 사용등 For object in Sequence 형 : 반복구문 for Example mylist = ['Ko','Jae','Sung'] for op in mylist: print op

Python Basic Range 일정한수열을반복하도록만든메서드 return 값은 Iterator 값을반환 range( 시작값, 종료값 {, 증가값 ) range Example evennumber = range(0,10,2) for op in evennumber: print op

Python Basic Break, Continue ( 제어문 ) Break : 반복문도중에반복문이 Code block을탈출 ( 반복문종료 ) Continue : 반복문의시작시점으로이동 Break Example evennumber = range(0,10,2) for op in evennumber: if op == 6: break print op Continue Example evennumber = range(0,10,2) for op in evennumber: if op == 6: continue print op

Python Basic Function, Method 여러줄의명령을하나의범위로지정하여특정한역할을하도록만든것 프로그램에서여러번사용해야하는일을함수로만들어필요시호출해서사용. 함수를선언시에는 def 라는 Keyword를사용. 매개변수는함수내에서사용하게될변수를함수호출시, 전달하고자할때사용. Def 함수명 ( 매개변수1, 매개변수2, ): 명령문명령문 return value Function Example Def SumFunc(a,b): sum = a+b return sum print(sumfunc(10,20))

네트워크장비를위한라이브러리 TextFSM https://github.com/google/textfsm

네트워크장비를위한라이브러리 Netmiko https://github.com/ktbyers/netmiko

네트워크장비를위한라이브러리 Paramiko http://www.paramiko.org

네트워크장비를위한라이브러리 pyntc https://github.com/networktocode/pyntc

네트워크장비를위한라이브러리 napalm NAPALM (Network Automation and Programmability Abstraction Layer with Multivendor https://napalm-automation.net/

네트워크장비를위한라이브러리 ncclient https://napalm-automation.net/

네트워크장비를위한라이브러리 라이브러리별지원가능한장비 ( 표로구성 ) https://napalm.readthedocs.io/en/latest/support/index.ht ml

네트워크벤더라이브러리 F5 SDK https://github.com/f5networks/f5-common-python

네트워크벤더라이브러리 PyNOS https://github.com/brcdcomm/pynos

네트워크벤더라이브러리 Extreme https://github.com/extremenetworks/extremescripting

네트워크벤더라이브러리 pyeapi https://github.com/aristanetworks/eossdk

네트워크벤더라이브러리 nitro https://github.com/citrix/netscaler-nitro-api

네트워크벤더라이브러리 Cobra / NXAPI https://github.com/citrix/netscaler-nitro-api

네트워크벤더라이브러리 fortiosapi https://github.com/fortinet-solutions-cse/fortiosapi

네트워크벤더라이브러리 CheckPoint https://github.com/citrix/netscaler-nitro-api

네트워크벤더라이브러리 PyEZ https://github.com/citrix/netscaler-nitro-api

NAPLAM Pyntc Netmiko IOS O O O IOS-XR O O IOS-XE O NXOS O O O JunOS O O O EOS O O O Brocade VDX O Huawei O Mellanox O Ruckus ICX O A10 O Aruba O Extreme EXOS O F5LTM O Fortinet O

OpenSource Guide Document https://github.com/ktbyers/netmiko/blob/develop/docs/source/index.rst http://netmiko.readthedocs.io/en/stable/index.html

따라해보기 : netmiko

따라해보기 : 설치해보기

따라해보기 : 설치해보기

따라해보기 : 설치해보기

따라해보기 : 설치해보기 pip install paramiko

따라해보기 : 설치해보기 pip install scp pip install pyyaml pyserial textfsm

따라해보기 : 설치해보기 git clone https://github.com/ktbyers/netmiko.git

따라해보기 : 설치해보기

따라해보기 : 설치해보기 python setup.py install

따라해보기 : 테스트코드 장비 Inventory 장비접속 명령어전송 결과값

Python 문자열다루기 Python 문자열다루기 CLI 명령을기반으로한네트워크장비제어에서는문자열을다루는것이중요 일반적인 CLI 결과중, 의미있는값혹은필요한값을어떻게 가공 하느냐? 벤더에서제공되는 API만으로는원하는값을모두만들기가어렵기때문에아직까지는반드시필요한부분.

Python 문자열다루기 Python 문자열연산 두개이상의문자열은 + 기호를사용하여연결 순수문자열의연결은문자열간의공백만으로도가능 Python 문자열슬라이싱 문자열 [ 시작Idx: 종료Idx-1] - 문자열을시작 Index 지점부터, 종료 Index 1까지의문자열을잘라낸다. - 시작 Index와종료 Index를각각생략하게되면, 각각최초시작지점 / 종료지점을가리키게된다.

Python 문자열다루기 Python 문자열 Formmating print 시에 %s, %c, %d 등으로지정하여원하는데이터값을출력할수있다. - %s 문자열 / %c 문자한개 / %d 정수 / %f 부동소수 / %o 8진수 / %x 16진수 각 Formatting 코드에맞춰서값을넣어야하지만, %s로지정할경우에는자동변환이되서들어가게된다. 문자열내에 % 를사용하여 Formatting 시에는 % 를일반문자로출력하려면 %% 로써야출력되지만, 문자열내에 % 를사용한 Formatting이없으면그냥 % 만쓴다. % 숫자s 과같이 % 와 Formatting 코드사이에숫자를넣으면해당크기만큼공간을할당해서출력하게된다. 이때에숫자를 로입력하면해당공간만큼할당하여문자열을왼쪽정열하여출력하게된다.

Python 문자열다루기 format 메서드 (String.format()) 문자열내의삽입될변수값을선언 예 ) blog: {0} community: {1} event : {2}.format( zigispace.net, neteg, 24 th N.EX.T )

Python 문자열다루기 Python 문자열 Method find(keyword, [start, [end]]) / rfind(keyword, [start, [end]]) - 문자열에서 Keyword가위치한첫번째 (rfind는뒤에서부터첫번째 ) Index를 리턴하고, 해당 Keyword 가존재하지않으면 -1 을리턴 index(keyword, [start, [end]]) - find() 와동일한동작을하지만, Keyword가존재하지않을경우에 -1 이아닌 ValueError 예외를발생. join(sequence) - sequence 형변수를, Join을호출한문자열로연결해서리턴하는메서드이며, split() 와반대의역할을하게됨. 문자를제거.

Python 문자열다루기 Python 문자열 Method partition(separator) - 문자열을 separator을나누게되는데, separator 앞, separator, separator 뒤의 3개의 Tuple로리턴. lstrip([chars]) - 문자열의왼쪽을제거.chars을지정하지않으면공백문자를제거. split([separator, [maxsplit]]) - separator로문자열을분리하는것은 Partition과동일하나, Partition의경우에는 separator도함께리턴되지만, split는해당 separator 기준으로분리가되면서포함되지않는다. Maxsplit의값을주게되면, 개수의 max 값을지정할수있다

Python 문자열다루기 Python 문자열 Method Strip([chars]) - 문자열양쪽끝을잘라내는데, 별도의 chars를지정하지않으면공백을제거하고 chars 지정시에는해당문자가포함된모든내용이삭제된다