You are on page 1of 62

APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_PF

APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_P

예제로 보는

‘네트워크 엔지니어를 위한 Python 101’


APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_PF
APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_P

오늘의 목표

NO
APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_PF
APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_P

NO
APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_PF
APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_P

YES
APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_PF
APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_P
APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_PF
APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_P
APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_PF
APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_P

Python Basic

Indentation
• Python에서 Indentation으로 Code Block(Scope)를 구분

• 동일한 Code Block은 동일한 방법(Space, Tab)으로 구분해야 함

• 하위 레벨의 Code Block 나오기 전에는 ‘:’ (콜론) 사용

Indent Example Indent Example


i = 10 i = 10
While( i < 10): While( i < 10):
print(‘i=‘ + i) print(‘i=‘ + i)
i=i+1 i=i+1
IndentationError: unident does not match any outer indentation level

제 24회 네트워크 전문가 따라잡기 ‘N.EX.T’ ZIGISPACE.NET


APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_PF
APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_P

Python Basic

• 변수
• 변수명으로 문자 / 숫자 / ‘_’ 가 사용 가능하며 대소문자 구분

• 변수 선언 시, 별도의 변수 Type이 존재하지 않음

• 변수의 할당되는 값에 따라서 변수 Type이 지정 됨

• 객체 단위로 지정이 되며, 별도의 초기화 없이 바로 사용이 가능

• 동일 객체인지 id(변수명) 명령을 사용하여 확인이 가능하다. (일종의 메모리 참조 값)

제 24회 네트워크 전문가 따라잡기 ‘N.EX.T’ ZIGISPACE.NET


APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_PF
APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_P

Python Basic

• 수치형 자료
• 숫자를 나타내는 자료형

• Int, long, float, complex 등이 존재

제 24회 네트워크 전문가 따라잡기 ‘N.EX.T’ ZIGISPACE.NET


APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_PF
APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_P

Python Basic

• 문자열
• 문자열은 “ ”, ‘ ’, 로 묶으며, 다수의 문자열은 ‘‘‘ ’’’ (홑 따음표) 3개를 묶는다.

• 문자열 내부에는 다른 변수 값을 포함하여 출력할 수 있으며, 이 경우에는 변수가 포함될

위치에 %s를 붙인다. 이후 print 명령 시에 %를 쓰고 %s에 들어갈 변수명을 입력한다.

이를 Placeholder이라고 한다.

• Placeholder에서 만약 2개 이상의 변수를 포함하고자 할 때에는 %뒤에 변수명 기입 시,

( )로 묶어준다.
Placeholder Example
name = ‘zigi’
blog = ‘zigispace.net’
mystr = ‘%s Blog : %s’
print(mystr %(name,blog))

제 24회 네트워크 전문가 따라잡기 ‘N.EX.T’ ZIGISPACE.NET


APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_PF
APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_P

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://’)

제 24회 네트워크 전문가 따라잡기 ‘N.EX.T’ ZIGISPACE.NET


APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_PF
APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_P

Python Basic

• Tuple
• 다수의 객체를 하나의 객체로 관리하는 데이터 타입

• ( ) (괄호)로 묶어주며, 대괄호 내에서는 ‘,’ 로 각 객체를 구분한다.

• List는 생성 이후, 수정이 가능하만 Tuple은 수정 불가. (읽기 전용)

• 읽기 전용이기 때문에 List에 비해서 처리 속도가 빠르다

tuple Example
myT = (1,2,3)
First, second = 10, 20
Blog = (‘zigi’ , ‘space’)

제 24회 네트워크 전문가 따라잡기 ‘N.EX.T’ ZIGISPACE.NET


APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_PF
APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_P

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

제 24회 네트워크 전문가 따라잡기 ‘N.EX.T’ ZIGISPACE.NET


APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_PF
APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_P

Python Basic

• If (조건문)
• 조건문에 따라서 구문 실행, 조건에 만족하지 않을 경우에 실행하기 위해서는 else 사용.

• 구문을 맞추기 위해서는 반드시 indent를 지켜야 함

• 다수의 조건을 위해서는 elif 명령을 사용.


if 조건식: if 조건식:
명령문
명령문 elif 조건식:
명령문 명령문
else:
명령문
If Example
if (‘grade’ = ‘A’):
print ‘Very Good’
elif (‘grade’ = ‘B’):
print ‘ Good’
Else:
print ‘Get out!’

제 24회 네트워크 전문가 따라잡기 ‘N.EX.T’ ZIGISPACE.NET


APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_PF
APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_P

Python Basic

• while (반복문)
• 조건식이 True인 동안 반복문 수행

While 조건식:
반복구문

while Example
count = 10
while count >= 0:
print count
count = count -1

제 24회 네트워크 전문가 따라잡기 ‘N.EX.T’ ZIGISPACE.NET


APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_PF
APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_P

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

제 24회 네트워크 전문가 따라잡기 ‘N.EX.T’ ZIGISPACE.NET


APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_PF
APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_P

Python Basic

• Range
• 일정한 수열을 반복하도록 만든 메서드

• return 값은 Iterator 값을 반환

range( 시작값, 종료값 {,증가값 )

range Example
evenNumber = range(0,10,2)

for op in evenNumber:
print op

제 24회 네트워크 전문가 따라잡기 ‘N.EX.T’ ZIGISPACE.NET


APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_PF
APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_P

Python Basic

• Break, Continue (제어문)


• Break : 반복문 도중에 반복문이 Code block을 탈출( 반복문 종료)

• Continue : 반복문의 시작 시점으로 이동

Break Example Continue Example


evenNumber = range(0,10,2) evenNumber = range(0,10,2)

for op in evenNumber: for op in evenNumber:


if op == 6: if op == 6:
break continue
print op print op

제 24회 네트워크 전문가 따라잡기 ‘N.EX.T’ ZIGISPACE.NET


APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_PF
APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_P

Python Basic

• Function, Method
• 여러 줄의 명령을 하나의 범위로 지정하여 특정한 역할을 하도록 만든 것

• 프로그램에서 여러 번 사용해야 하는 일을 함수로 만들어 필요 시 호출해서 사용.

• 함수를 선언 시에는 ‘def’라는 Keyword를 사용.

• 매개 변수는 함수 내에서 사용하게 될 변수를 함수 호출 시, 전달하고자 할 때 사용.

Def 함수명 ( 매개변수1, 매개변수2,…): Function Example


명령문 Def SumFunc(a,b):
명령문 sum = a+b
return value return sum

print(SumFunc(10,20))

제 24회 네트워크 전문가 따라잡기 ‘N.EX.T’ ZIGISPACE.NET


APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_PF
APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_P
APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_PF
APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_P
APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_PF
APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_P

네트워크 장비를 위한 라이브러리

TextFSM

https://github.com/google/textfsm

제 24회 네트워크 전문가 따라잡기 ‘N.EX.T’ ZIGISPACE.NET


APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_PF
APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_P

네트워크 장비를 위한 라이브러리

Netmiko

https://github.com/ktbyers/netmiko

제 24회 네트워크 전문가 따라잡기 ‘N.EX.T’ ZIGISPACE.NET


APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_PF
APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_P

네트워크 장비를 위한 라이브러리

Paramiko

http://www.paramiko.org

제 24회 네트워크 전문가 따라잡기 ‘N.EX.T’ ZIGISPACE.NET


APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_PF
APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_P

네트워크 장비를 위한 라이브러리

pyntc

https://github.com/networktocode/pyntc

제 24회 네트워크 전문가 따라잡기 ‘N.EX.T’ ZIGISPACE.NET


APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_PF
APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_P

네트워크 장비를 위한 라이브러리

napalm

NAPALM
(Network Automation
and
Programmability
Abstraction Layer
with
Multivendor

https://napalm-automation.net/

제 24회 네트워크 전문가 따라잡기 ‘N.EX.T’ ZIGISPACE.NET


APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_PF
APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_P

네트워크 장비를 위한 라이브러리

ncclient

https://napalm-automation.net/

제 24회 네트워크 전문가 따라잡기 ‘N.EX.T’ ZIGISPACE.NET


APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_PF
APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_P

네트워크 장비를 위한 라이브러리

라이브러리별 지원 가능한 장비(표로 구성)

https://napalm.readthedocs.io/en/latest/support/index.ht
ml

제 24회 네트워크 전문가 따라잡기 ‘N.EX.T’ ZIGISPACE.NET


APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_PF
APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_P

네트워크 벤더 라이브러리

F5 SDK

https://github.com/F5Networks/f5-common-python

제 24회 네트워크 전문가 따라잡기 ‘N.EX.T’ ZIGISPACE.NET


APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_PF
APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_P

네트워크 벤더 라이브러리

PyNOS

https://github.com/BRCDcomm/pynos

제 24회 네트워크 전문가 따라잡기 ‘N.EX.T’ ZIGISPACE.NET


APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_PF
APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_P

네트워크 벤더 라이브러리

Extreme

https://github.com/extremenetworks/ExtremeScripting

제 24회 네트워크 전문가 따라잡기 ‘N.EX.T’ ZIGISPACE.NET


APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_PF
APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_P

네트워크 벤더 라이브러리

pyeapi

https://github.com/aristanetworks/EosSdk

제 24회 네트워크 전문가 따라잡기 ‘N.EX.T’ ZIGISPACE.NET


APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_PF
APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_P

네트워크 벤더 라이브러리

nitro

https://github.com/citrix/netscaler-nitro-api

제 24회 네트워크 전문가 따라잡기 ‘N.EX.T’ ZIGISPACE.NET


APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_PF
APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_P

네트워크 벤더 라이브러리

Cobra / NXAPI

https://github.com/citrix/netscaler-nitro-api

제 24회 네트워크 전문가 따라잡기 ‘N.EX.T’ ZIGISPACE.NET


APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_PF
APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_P

네트워크 벤더 라이브러리

fortiosapi

https://github.com/fortinet-solutions-cse/fortiosapi

제 24회 네트워크 전문가 따라잡기 ‘N.EX.T’ ZIGISPACE.NET


APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_PF
APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_P

네트워크 벤더 라이브러리

CheckPoint

https://github.com/citrix/netscaler-nitro-api

제 24회 네트워크 전문가 따라잡기 ‘N.EX.T’ ZIGISPACE.NET


APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_PF
APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_P

네트워크 벤더 라이브러리

PyEZ

https://github.com/citrix/netscaler-nitro-api

제 24회 네트워크 전문가 따라잡기 ‘N.EX.T’ ZIGISPACE.NET


APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_PF
APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_P

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
APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_PF
APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_P
APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_PF
APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_P

OpenSource Guide Document

https://github.com/ktbyers/netmiko/blob/develop/docs/source/index.rst

http://netmiko.readthedocs.io/en/stable/index.html

제 24회 네트워크 전문가 따라잡기 ‘N.EX.T’ ZIGISPACE.NET


APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_PF
APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_P
APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_PF
APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_P

따라해보기 : netmiko

제 24회 네트워크 전문가 따라잡기 ‘N.EX.T’ ZIGISPACE.NET


APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_PF
APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_P
APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_PF
APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_P

따라해보기 : 설치해보기

제 24회 네트워크 전문가 따라잡기 ‘N.EX.T’ ZIGISPACE.NET


APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_PF
APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_P

따라해보기 : 설치해보기

제 24회 네트워크 전문가 따라잡기 ‘N.EX.T’ ZIGISPACE.NET


APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_PF
APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_P

따라해보기 : 설치해보기

제 24회 네트워크 전문가 따라잡기 ‘N.EX.T’ ZIGISPACE.NET


APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_PF
APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_P

따라해보기 : 설치해보기

pip install paramiko

제 24회 네트워크 전문가 따라잡기 ‘N.EX.T’ ZIGISPACE.NET


APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_PF
APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_P

따라해보기 : 설치해보기

pip install scp

pip install pyyaml pyserial textfsm

제 24회 네트워크 전문가 따라잡기 ‘N.EX.T’ ZIGISPACE.NET


APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_PF
APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_P

따라해보기 : 설치해보기

git clone https://github.com/ktbyers/netmiko.git

제 24회 네트워크 전문가 따라잡기 ‘N.EX.T’ ZIGISPACE.NET


APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_PF
APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_P

따라해보기 : 설치해보기

제 24회 네트워크 전문가 따라잡기 ‘N.EX.T’ ZIGISPACE.NET


APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_PF
APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_P

따라해보기 : 설치해보기

python setup.py install

제 24회 네트워크 전문가 따라잡기 ‘N.EX.T’ ZIGISPACE.NET


APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_PF
APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_P

따라해보기 : 테스트 코드

장비 Inventory

장비 접속

명령어 전송

결과 값

제 24회 네트워크 전문가 따라잡기 ‘N.EX.T’ ZIGISPACE.NET


APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_PF
APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_P
APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_PF
APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_P

Python 문자열 다루기

• Python 문자열 다루기


• CLI 명령을 기반으로한 네트워크 장비 제어에서는 문자열을 다루는 것이 중요

• 일반적인 CLI 결과 중, 의미 있는 값 혹은 필요한 값을 어떻게 ‘가공‘ 하느냐?

• 벤더에서 제공되는 API만으로는 원하는 값을 모두 만들기가 어렵기 때문에 아직까지는 반드시 필요한 부분.

제 24회 네트워크 전문가 따라잡기 ‘N.EX.T’ ZIGISPACE.NET


APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_PF
APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_P

Python 문자열 다루기

• Python 문자열 연산
• 두 개 이상의 문자열은 ‘+’ 기호를 사용하여 연결

• 순수 문자열의 연결은 문자열간의 공백만으로도 가능

Python 문자열 슬라이싱


• 문자열[시작Idx:종료Idx-1]

- 문자열을 시작 Index 지점부터, 종료 Index – 1까지 의 문자열을 잘라낸다.

- 시작 Index와 종료 Index를 각각 생략하게 되면, 각각 최초 시작 지점/종료

지점을 가리키게 된다.

제 24회 네트워크 전문가 따라잡기 ‘N.EX.T’ ZIGISPACE.NET


APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_PF
APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_P

Python 문자열 다루기


• Python 문자열 Formmating
• print 시에 %s, %c, %d 등으로 지정하여 원하는 데이터 값을 출력 할 수 있다.

- %s 문자열 / %c 문자 한 개 / %d 정수 / %f 부동소수 / %o 8진수 / %x 16진수

• 각 Formatting 코드에 맞춰서 값을 넣어야 하지만, %s로 지정할 경우에는 자동 변환이 되서 들어가게 된다.

• 문자열 내에 %를 사용하여 Formatting 시에는 %를 일반 문자로 출력하려면 %%로 써야 출력되지만,

문자열 내에 %를 사용한 Formatting이 없으면 그냥 %만 쓴다.

• %숫자s 과 같이 %와 Formatting 코드 사이에 숫자를 넣으면 해당 크기만큼 공간을 할당해서 출력하게 된다.

이 때에 숫자를 –로 입력하면 해당 공간만큼 할당하여 문자열을 왼쪽 정열하여 출력하게 된다.

제 24회 네트워크 전문가 따라잡기 ‘N.EX.T’ ZIGISPACE.NET


APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_PF
APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_P

Python 문자열 다루기


• format 메서드(String.format())
•문자열 내의 삽입 될 변수 값을 선언

•예) “blog: {0} community: {1} event : {2}”.format(“zigispace.net”,”neteg”, “24th N.EX.T”)

제 24회 네트워크 전문가 따라잡기 ‘N.EX.T’ ZIGISPACE.NET


APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_PF
APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_P

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()와 반대의 역할을 하게 됨. 문자를 제거.

제 24회 네트워크 전문가 따라잡기 ‘N.EX.T’ ZIGISPACE.NET


APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_PF
APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_P

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 값을 지정할 수 있다

제 24회 네트워크 전문가 따라잡기 ‘N.EX.T’ ZIGISPACE.NET


APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_PF
APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_P

Python 문자열 다루기


• Python 문자열 Method
• Strip([chars])

- 문자열 양쪽 끝을 잘라내는 데, 별도의 chars를 지정하지 않으면 공백을 제거하

고 chars 지정 시에는 해당 문자가 포함된 모든 내용이 삭제 된다

제 24회 네트워크 전문가 따라잡기 ‘N.EX.T’ ZIGISPACE.NET


APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_PF
APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_P
APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_PF
APCPCWM_4828539:WP_GLOBAL_PFWP_GLOBAL_P

You might also like