python

    [python] 콘솔에 출력되는 글자 색 변경

    C_RED = "\\033[31m" C_BLUE = "\\033[34m" C_END = "\\033[0m" ~~ def elog(message): print(C_RED+"========= taskview : "+message+"========="+C_END) def slog(message): print(C_BLUE+"========= taskview : "+message+"========="+C_END) 함수를 만들어서 쓰면 편함. 이걸 로그 찍는 용도로 만들었었는데, 로그 출력할때는 print보다는 logging.getLogger() 객체 생성하고 logging.loglevel 로 찍는걸 권장한다.

    플라스크 & 파이썬 - 경로확인, 파이썬 설치 패키지 확인, 플라스크 환경변수 설정 및 실행, 플라스크 SCSS 모듈,

    파이썬 경로 확인 import sys sys.executable 플라스크 환경변수 설정하고 실행 set FLASK_APP=폴더이름 flask db init flask db migrate flask db upgrade python -m flask run 파이썬 설치 패키지 확인 및 내보내기 pip freeze > requirements.txt flask scss 사용 pip install flask-assets pip install scss from flask_assets import Environment, Bundle # SCSS assets = Environment(app) assets.url = app.static_url_path scss = Bundle('sb-admin-2.css',filters=..

    pandas Class list 를 data frame 으로

    class items(): def __init__(self,name,price) : self.name = name self.price = price 위와같은 클래스가 선언되어 있을 때, 해당 클래스를 list 형태로 만들어 쓸 일이 있을거다. items_list = [] for i,j in zip(name,price) : items_list.append(items(i.text,j.text)) data = pd.DataFrame([ (i.name,i.price) for i in items_list ],columns=['이름','가격']) 위 처럼 class list 를 만들어서 멤버를 추가하고, DataFrame 생성시에 내부적으로 반복문을 돌려 리스트를 만들어주고 , 컬럼 명을 지정하여 주면 된다. 결과..

    pandas 멀티프로세스 사용하기 + 큰 csv 데이터 나눠서 가져오기

    프로젝트를 진행하면서 , 대량의 cvs 데이터를 읽어와 처리할 일이 생겼다. 컴퓨터 램의 용량보다 데이터가 무조건 크므로, csv_read 함수를 사용하면 램이 터져나갈 것. 이를 해결하기 위해 chunksize를 구분하여 일부분씩 쪼개서 가져오는 방법을 선택했다. csv_chunk = pd.read_csv("G:\ks_data/"+filename+".csv",chunksize=2000000) for chunk in csv_chunk : print(chunk) 방식은 c언어 등에서 fopen - fread 시에 사용하는 방법과 유사한데, 한번 read_csv를 실행하면 동일 파일에 대해 파일 포인터같은게 유지되어 파일 스트림 방식으로 데이터를 읽어오게 된다. 즉, chunksize를 지정했다면 아래의 f..

    범용적인 웹 크롤링 툴 제작 + 파이썬 이해하기

    이번 케실주 프로젝트 주제인 "SQL 인젝션 자동화 진단도구" 제작을 위해선 그 선행으로 해당 웹 페이지에 대한 크롤링이 선행되어야 한다. 또한 다양한 경우에 대응해야 하므로, 범용성을 가지는 크롤링 툴 제작이 필요하다. 그래서 파이썬의 웹 페이지 크롤링 라이브러리인 BeautifulSoup 와 Requests를 이용한 웹 크롤링을 공부하게 되었다. 기초적인 것들은 다른 블로그나 사이트들에도 있으니 굳이 작성을 하지 않겠고, 범용성을 가지는 자동화가 목적인 경우 어떤 식으로 크롤링 코드를 작성해야 하는지 정도만 메모하려고 한다. 1. request 모듈 사용시엔 인자로 넘어갈 URL에 반드시 http 혹은 https가 붙어야한다. URL을 입력받아 해당 목적지에 요청을 보내는 식의 코드인 경우, 사용자가..

    윈도우10 에서 파이썬 사용시 경로가 꼬이는 경우

    보통은 환경변수를 통해 해결할 수 있지만, 윈10부터는 "앱 실행 별칭 관리" 라는 기능이 추가되어 여기에 등록된 프로그램은 명령 프롬포트에서 별도의 경로를 통해 실행하게끔 설정이 된다. 그러면 어떻게 되느냐? C:\\Users\\synod>where python C:\\Users\\synod\\AppData\\Local\\Programs\\Python\\Python37\\[python.exe](python.exe) C:\\Users\\synod\\AppData\\Local\\Microsoft\\WindowsApps\\[python.exe](python.exe)이렇게 파이썬이 두개로 보이는 별 희한한 경우가 생긴다. pip로 모듈을 설치하면 설치할땐 저 Programs 하위경로 파이썬에 설치가 되는데 정..

    pip install 이 안될때

    우분투 사용중에 pip install 명령어를 사용하면 import main 에러가 뜰 때가 있다. pip가 업그레이드 된 다음에 발생하는 문제라고 하는데, 난 업그레이드 한적이 없는데..? 아무튼 해결은 간단하다. /usr/bin/pip 파일을 수정해주면 된다. sudo vi /usr/bin/pip 으로 열면 아래와 같은 부분이 보인다. from pip import main 해당 파일 내에서 보이는 모든 main을 __main__ 로 수정해주면 끝. from pip import __main__ 이거 하나때문에 pip 재설치를 몇번을 했는지.. * 19.01.31 내용 추가 python -m pip install [모듈명] 으로 설치하면 에러가 안나는 경우도 있었다.

    python 패키지 설치된 경로 확인 + pwntools import error

    python -m site 통상적인 경로인 usr/lib 말고 usr/local 로 가는 경우도 있으니, 해당 명령어 통해 정확하게 경로를 확인 가능하다. 이걸 찾아 떠돈 이유가, pwntools 설치후 에러가 발생해서인데, pwn 을 import 한 파이썬 코드를 실행하면 다음과 같은 에러가 발생한다. ImportError: cannot import name ENUM_P_TYPE 해결방법은 /usr/lib/pythonXX/site-packages/pwnlib/elf/elf.py 에서 54 , 1749 번쨰 줄에 있는 ENUM_P_TYPE 을 ENUM_P_TYPE_BASE로 고치면 되는데 저 site-packages 경로를 못찾아 한참 삽질했다. pip를 통해 설치한 패키지는 dist-packages 경..

    pip 이용한 설치중 Cannot uninstall 'pyserial' 에러발생

    서버를 다시 세팅하고 pwntools 를 설치중에 다음과 같은 에러가 발생했다. Cannot uninstall 'pyserial'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall. sudo pip install --ignore-installed pwntools --ignore 옵션을 추가하여 게속 설치 진행이 가능하다. 저거 하나 몰라서 삽질..

    python 2.7 에서 bs4(Beautifulsoup) 안될때

    파이썬에서 Baeutifulsoup 를 사용하고 싶을떄,이미 설치까지 완료되었음에도 불구하고 에러가 발생할때가 있다. Traceback (most recent call last): File "union_sql.py", line 2, in from bs4 import BeautifulSoupImportError: No module named bs4 웃긴건 이미 설치도 되어있는 상태인거고, 파이썬 3에서는bs4를 잘 읽어온다는 사실. python2.7 -m pip install bs4 위와같이 명령어를 쳐서 , 파이썬 2.7에서도 사용 가능하게끔 해주면 해결된다. 만세