본문 바로가기

Developer/Python

(15)
[Python] 딕셔너리 키 값 존재여부 확인 Python2 를 사용하는 경우, fruit_dict = {"apple": 3, "grape":5, "orange": 1} # key value가 apple이 존재할 경우, True # else: False print(fruit_dict.has_key("apple")) Python3 를 사용하는 경우, fruit_dict = {"apple": 3, "grape":5, "orange": 1} # apple에 해당하는 value 출력 print(fruit_dict.get("apple")) fruit_dict = {"apple": 3, "grape":5, "orange": 1} if fruit_dict["apple"]: print("apple exists") fruit_dict = {"apple": 3, "g..
[Python] 파이썬 이벤트 루프 이벤트 루프? 이벤트 루프(event loop) 혹은 메시지 디스패칭(message dispatching). 프로그램의 중앙에 위치한 제어 흐름 메시지가 수신될 떄마다, 아래의 코드에서 처리되며, quit 메시지가 수신되어 프로그램이 종료할 때까지 반복 while True: message = get_message() if message == quit: break process_message(message) 1. 기본 패턴 가장 많이 사용되는 이벤트 소스는 I/O (대부분의 I/O 는 본질적으로 블로킹 작업. 속도 매우 느림) 프로그램은 read 작업이 완료될 때까지 기다려야하며, 다른 작업 불가 read는 동기식 호출이며, 파일, 소켓 등에 읽을 데이터가 없다면 프로그램 블록 해결 방안 소켓에 읽을 데이..
[Python] 파이썬에서 IP 버전 확인하기 파이썬에서 IP 버전을 확인해야하는 경우가 있다. 아직까지는 IP v4를 많이 사용하고 있는데, nslookup 시에 IP v6가 나오는 경우가 있어서.. import ipaddress hostIP = '8.8.8.8' if int(ipaddress.ip_address(hostIP).version) == 4: print("4") elif int(ipaddress.ip_address(hostIP).version) == 6: print("6")
[Python] 파이썬에서 텔넷(telnet) 사용하기 개발을 하다보면, 파이썬 코드에서 텔넷을 사용하고 싶은 경우가 생긴다. 파이썬에서는 telnetlib 를 지원하고 있기 때문에, 아래와 같이 원하는 ip, port 정보로 텔넷 사용이 가능하다. import telnetlib hostIP = '8.8.8.8' try: tn = telnetlib.Telnet(hostIP, port=80, timeout=5) print(tn) print("success") except Exception as ex: print(ex)
[Python] dict 딕셔너리 키-값 출력 파이썬 딕셔너리에서 for문을 사용하여 키-값 쌍을 출력할 수 있다. for x in dict: print(x, end=' ') 위와 같이 사용하면, x는 키값만 출력된다. 따라서, for key, value in dictionary.items(): print(key, value) items()라는 함수를 사용하여, key, value를 각각 프린트 할 수 있다. 값만 출력하기 위해서는 for value in dictionary.values(): print(value, end=' ') values()라는 함수를 사용할 수 있다.
[Python] 파이썬 CPU 확장 방법 2 (퓨처스) 이번 페이지에서는 CPU 확장 방법 중 하나인 '퓨처스'에 대해 설명한다. 멀티 프로세스와 멀티 스레드 관련 포스트는 이전 포스트를 참고한다. https://tttto-factory.tistory.com/7 파이썬 - CPU 확장 방법 1 (멀티 스레드, 멀티 프로세스) CPU 확장 이유? CPU 속도는 무한히 빨라질 수 없으므로, 애플리케이션에 동시성 + 병렬성 도입 CPU 확장 방법 1. 스레드 여러 함수를 동시에 실행하기에 좋다 싱글 CPU : 스레드 차례로 실행 멀� tttto-factory.tistory.com futures 사용하기 파이썬3 : concurrent.futures 모듈을 사용하면 비동기 작업 쉽게 처리 가능 파이썬2 : pip install futures명령으로, 파이썬 2에도 ..
[Python] 파이썬 CPU 확장 방법 1 (멀티 스레드, 멀티 프로세스) CPU 확장 이유? CPU 속도는 무한히 빨라질 수 없으므로, 애플리케이션에 동시성 + 병렬성 도입 CPU 확장 방법 1. 스레드 여러 함수를 동시에 실행하기에 좋다 싱글 CPU : 스레드 차례로 실행 멀티 CPU : 여러 CPU에서 스레드 실행 GIL의 제약으로 완벽한 확장 솔루션이 아님 import threading def print(line): print(line) # 스레드 실행 후 완료 대기 t = threading.Thread(target=print, args("multithread Hi",)) t.start() print("threading start") # 스레드 완료될 때까지 메인 스레드 대기 t.join() 스레드를 데몬으로 돌리면 백그라운드 스레드로 간주됨. 메인 스레드 종료 후 같이..