예) X * Y = 30 이라고 가정했을때 가능한 X, Y값을 구하는 함수 입니다. 코드 def get_div_decimals(n: int, m: int = 1):#, limit: int = 0) -> Tuple[int, List[int], List[int]]: q = m // n m = (m % n) * 10 dividend = m dividend_list = [] digit_list = [] while True: # print(digit_lst) if dividend in dividend_list: break dividend_list.append(dividend) digit = dividend // n dividend = (dividend % n) * 10 digit_list.append(digit)..
파이썬 selenium execute_script는 JavaScript코드인 스크립트 형식으로 작동하게 됩니다. 그래서 사용할때 문자열로 작성하다 보니 자동 완성 안됨 과 코드가 길어지는 등 여러 단점이 있는데요 그걸 해결하고자 함수로 만들어 봤습니다. 소스코드 from selenium.webdriver.chrome.webdriver import WebDriver from selenium.webdriver.common.by import By from string import Formatter # 스크립트 전용 변수 script_Function =\ ''' function getElementByXpath(path) { return document.evaluate(path, document, null, XP..
예를 들어 fo = 'test{test}{num}' 이런 식으로 있는데 print(fo.format(test='test',num='1')) 이런 식으로 줘야 됩니다. 그리고 기본적으로 딕셔너리 형태로 줄 수가 없습니다. 딕셔너리 형태 방법 일단 딕셔너리 형태로 주는 방법입니다. test = { 'test':'dd', 'num': 1 } fo = 'test{test}{num}' print(fo.format(**test)) 간단하게 **주면 됩니다. (또는 fo.format_map(test) 줄수도 있습니다.) 하지만 문제가 하나 더 있습니다. 만약 없는 딕셔너리 즉 test = { 'test':'dd', } fo = 'test{test}{num}' print(fo.format(**test)) test = ..
Windows 전용입니다 생성한 .py파일과 같은 위치에 이미지가 있어야 됩니다. pip install 기본 설치 pip install 기본 설치 되어 있어야 됩니다. pip install pywin32 pip install pillow 소스코드 from io import BytesIO import win32clipboard from PIL import Image def send_to_clipboard(clip_type, data): win32clipboard.OpenClipboard() win32clipboard.EmptyClipboard() win32clipboard.SetClipboardData(clip_type, data) win32clipboard.CloseClipboard() filepath ..
파이썬으로 작업 안 하고 엑셀에 작업하다가 파이썬으로 자동화할 경우 기존 작성했던 내용들이 다 사라지는 것을 겪볼 수 있습니다. 그때 해결방법입니다. import pandas as pd from openpyxl import load_workbook book = load_workbook(execlFileName) writer = pd.ExcelWriter(execlFileName, engine='openpyxl') writer.book = book writer.sheets = dict((ws.title, ws) for ws in book.worksheets) newdf = pd.read_excel(SAVE) newdf.to_excel(writer) writer.save() 위코드로 해결하시면 되겠습니다. ..
데이터가 많아지면 파일 생성하는데 시간이 걸리기 마련입니다. 시간이 걸리게 되면 코드가 에러가 나기 마련이죠.. 따라서 대기 시간을 줘야 하는데 time.sleep함수만 줘서는 예측하기 힘든 상황입니다. 따라서 while문을 사용하여 반응형으로 대기를 주면 될 거 같습니다. 간단한 코드입니다~ 예제 코드 import os, glob # 해당 .py파일 위치 path=os.path.dirname(os.path.realpath(__file__)) # 파일 있을때까지 대기 count = 1 while not glob.glob(os.path.join(path,'파일이름*.csv')): print(count) count+=1 time.sleep(1) # 아래부터 코드 실행 glob함수를 써서 모든 파일 찾게끔 했..
pandas에서 to_sql을 하다 보면 ( Background on this error at: http://sqlalche.me/e/14/9h9h) 이런 문구를 자주 마주합니다. 예시 대충 엑셀 자료는 이렇다고 가정하고 테이블은 이렇다고 가정하겠습니다. 이렇게 여러 가지 복합적인 이유로 SQL에 들어가지 않게 됩니다. (pandas to_sql의 제일 큰 문제가 엑셀의 모든 데이터를 한번에 집어넣기 때문에 오류가 많이 납니다...) 그럼 일단 SQL에 맞게 엑셀을 변경하셔야 합니다. 변경해야 되는 부분을 잘 파악해야 하는데 저 같은 경우는 첫 번째 : 1번째, 2번째 row 값이 맞지 않습니다.(엑셀에 1번째 row가 4번째 row에 적용이 안되기 때문에 가공을 한번 하셔야 합니다..) 두 번째 : 필..
pyautogui.locateOnScreen이 기본적으로 주 모니터에만 사용할 수 있게 되어 있습니다. 따라서 다중 모니터를 사용하고 있을 시 사용함에 있어 불편하게 됩니다. 해결 방법은 간단 합니다. 아래 코드만 추가하시면 됩니다. from PIL import ImageGrab from functools import partial import pyautogui ImageGrab.grab = partial(ImageGrab.grab, all_screens=True) i=pyautogui.locateOnScreen(r'이미지경로') print(i) 출처 : https://github.com/asweigart/pyautogui/issues/321 --- 주의사항 --- 더보기 1. pyautogui.loca..
def is_number(n): if n != 'NULL': try: float(n) except ValueError: return False return True def mySQLINSERTQuery(tableName:str,data:dict): sql= 'INSERT into `'+tableName+'` (`{}`)values({})' key = '`, `'.join(list(data.keys())) value=','.join(str(e) if is_number(str(e)) else '"'+str(e)+'"' for e in data.values()) return sql.format(key,value) tableName='test' test={ # 문자열 숫자는 숫자로 변형됨 'test1':'132..
because file is missing, has improper permissions, or is an unsupported or invalid format 한글 경로가 있으면 이런 오류가 나타납니다.. 해결방법은 numpy -> opencv -> pyautogui로 해결하면 됩니다. Tree구조는 이렇습니다. import os import pyautogui import numpy as np import cv2 path=os.path.dirname(os.path.realpath(__file__)) img = os.path.join(path,'이미지','img_002.png') n = np.fromfile(img, np.uint8) img = cv2.imdecode(n, cv2.IMREAD_COLOR)..
python3로 진행되었습니다. 32,64bit 각각 다운로드합니다 (32비트 먼저 진행 하겠습니다.) add Python 3.X(버전) to PATH (환경변수 자동 설정) 체크 -> 커스텀 클릭 이 3가지만 체크해주시고 다음 Install for all users 체크 후 위치 변경되는데 ctrl+c(복사) -> Install(설치) 클릭 (참고 : 디버그 체크는 개인 취향) 복사한 위치 열고 안에 python.exe 복붙 후 python32.exe로 이름 변경(이름은 원하는 걸로 하셔도 됩니다.) pip도 마찬가지로 하시면 됩니다. pip 위치는 python.exe 했던 사진에서 Scripts폴더 안에 있습니다 이걸 64비트도 같은 방식으로 이름만 다르게 해서 (예 : python64, pip64)..
저는 windows10 pro python3.9.0 64bit로 진행하였습니다 코드는 깃허브에 있습니다. https://github.com/h12sw06/google-images-download-crawling h12sw06/google-images-download-crawling Contribute to h12sw06/google-images-download-crawling development by creating an account on GitHub. github.com #사용법 1. Python install 설치할 것들 pip install bs4 pip install selenium 2. 원본.py 또는 test copy.py를 실행하시면 됩니다. #참고 1-1. 원본.py 또는 test co..