본문 바로가기

파이썬

(21)
[파이썬] 웹 페이지 스크랩 하기(BeautifulSoup 이용) 파이썬의 BeautifulSoup 라이브러리를 이용해서 웹 페이지를 스크랩하는 간단한 예제 코드입니다. 예제를 위한 사이트는 뽐뿌 게시판으로 정했습니다. 우선 전체 코드를 먼저 올리고 간단한 설명은 뒤에 있습니다. 전체 코드 # 뽐뿌/뽐뿌 게시판 스크랩 # 타겟 주소: https://www.ppomppu.co.kr/zboard/zboard.php?id=ppomppu import pandas as pd from urllib.request import urlopen from requests import get from bs4 import BeautifulSoup import os g_sTargetUrl = 'https://www.ppomppu.co.kr/zboard/zboard.php?id=ppomppu' ..
[파이썬] 함수 호출 CALL BY VALUE/CALL BY REFERENCE 파이썬에서 함수 호출 시 call by value/ref 를 설명하는 간단한 예제입니다 1. bool, 문자열, 숫자, 리스트, 딕셔너리를 함수에서 변경했을 때 def testFunc2(bValue, sString, nValue, list, dic): bValue = True sString = '새로운 문자' nValue = nValue + 100 list.append(100) dic['과학'] = 70 bValue = False sString = '이전 문자' nValue = 10 list = [1,2,3] dic = {'국어': 80, '수학': 95, '영어': 80} testFunc2(bValue, sString, nValue, list, dic) print(bValue) print(sString..
파이썬의 for 루프 파이썬의 for 루프는 전통적인 C/C++/JAVA 와는 조금 사용방법이 달라서 기록 해 둡니다. 일반적인 C/C++ 은 for (초기값 ; 완료조건; step) 순으로 되어 있는데 비해 파이썬은 for 변수 in 리스트 와 같이 되어 있습니다. 0부터 99까지 더하는 간단한 for 루프는 ##### sum = 0 for i in range(0, 100): sum = sum + i print(sum) 식으로 구현 됩니다. 여기서 range는 range(stop) 또는 range(start, stop, step) 식으로 사용되고 list 와 유사한 빌트인 클래스를 리턴합니다. loop = range(10) print(type(loop)) # 결과는 99부터 0까지 더하기를 역으로 처리하면 요리 됩니다 st..
[CREON PLUS API 활용] BlockRequest 와 Request 크레온 플러스 API를 이용해서 통신하는 방법은 다음 2가지가 있습니다 BlockRequest 방식 - 가장 간단한 데이터 요청Request 호출 후 Received 이벤트를 수신 받기 아래 코드는 두 가지 방식으로 현재가를 통신하는 코드 입니다.import pythoncom from PyQt5.QtWidgets import * import win32com.client import win32event g_objCodeMgr = win32com.client.Dispatch('CpUtil.CpCodeMgr') StopEvent = win32event.CreateEvent(None, 0, 0, None) class CpEvent: def set_params(self, client, name, caller): ..
파이썬 윈도우 메시지 펌프 처리 예제 파이썬을 이용해서 윈도우 메시지펌프를 하는 간단한 예제 코드 입니다 우선 전체 코드를 먼저 본 다음 일부 중요 함수들 설명 이어가겠습니다. 메시지 펌프 코드는 아래 사이트를 참고 했습니다.Processing Windows Messages Using MsgWaitForMultipleObjects import sys import pythoncom from PyQt5.QtWidgets import * import win32event StopEvent = win32event.CreateEvent(None, 0, 0, None) ################################################ # 테스트를 위한 메인 화면 class MyWindow(QMainWindow): def __init..
파이썬 리턴값 편리 기능 파이썬에는 몫과 나머지를 한번에 구하는 dibmod 함수가 있다. a, b = divmod(123, 5) 여기서 특이한 점은 함수의 리턴이 마치 2개가 되는 것처럼 표현되어 a, b 두 변수에 각각 할당 된다는 점 실제 divmod 의 리턴값은 tuple 하나이며 아래와 같이 확인 해 볼 수 있다. a = divmod(123,5) type(a) Out[6]: tuple print(a) (24, 3) 단 파이썬에서는 tuple 에 한해 패킹과 언패킹을 손쉽게 해 줘서 처음 예제처럼 a, b 변수에 튜플을 분리해서 값을 넣어주는 식이다. 함수는 실제 구현하고자 하는 목적을 달성하기 위해 대부분 어떤 값을 리턴하는 경우가 많다 대부분의 언어에서는 리턴값이 하나이기 때문에, 하나의 리턴값으로 함수의 성공을 리턴..
[파이썬] 파일 다루기(유니코드, 파일 읽기 등) 기본적인 파일 읽고 쓰기 대부분의 언어와 동일하게 open/close 함수를 이용해서 파일을 읽고 닫을 수 있습니다 .f = open(path, "r") f.close() 파일 인코딩 예외처리텍스트 파일의 인코딩은 ANSI/유니코드/UTF-8 등 다양하게 존재 합니다. (노트패드에 파일 저장을 눌러보면 인코딩 선택 기능으로 확인 가능) 파일의 인코딩을 정확히 알 경우에는 해당 인코딩으로 읽어 주면 되지만 해당 파일의 인코딩을 모를경우에는 일단 읽어보고 오류 나면 다시 읽는 식으로 처리해 줘야 합니다.(try ~ exception 활용)import codecs # file encoding def readFile(self, path): ftype = 'normal' f = open(path, "r") lin..
[파이썬] 문자열 다루기 파이썬 문자열 관련 자주 사용하는 함수들 위주로 샘플 코드를 만들었습니다 sText = ' *# They said: "Of course." and you said "Thank you" #* ' print('원문:', sText) #결과: 원문: *# They said: "Of course." and you said "Thank you" #* # 문자열 Trim 하기 공백 등 제거 sText = sText.strip() print('공백제거:', sText) #결과: 공백제거: *# They said: "Of course." and you said "Thank you" #* # 특정 단어 가 문자열에 있는 지 찾기 if 'They' in sText: print('"They" Found') #결과: "The..