일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Uipath 기초
- 파이썬 환경설정
- 날짜 정규식
- 네이버 로그인 하기
- UiPath
- 가상환경설치
- uipath 입문
- Python
- 파이썬 가상환경 설치
- 네이버부동산크롤링
- 파이썬 가상환경 설치방법
- pywinauto 윈도우
- 파이썬네이버부동산
- selenium
- Uipath 설치방법
- pywinauto 윈도우제어
- venv 설치
- 커머스API
- Element is not clickable at point
- 네이버 로그인 캡챠해결
- pywinauto
- 왕초보 파이썬 실행
- 네이버매물크롤링
- pycdc.exe
- Selenium 셀렉터잡기
- vscode venv 설치
- 파이썬 네이버 로그인
- 네이버커머스API
- 네이버 로그인 영수증 해결
- pycdas.exe
- Today
- Total
목록프로그래밍 (348)
콘솔워크
def df_to_clipboard(self, df_order: pd.DataFrame): print(df_order) df_order.to_clipboard(excel=True, index=False, header=None) 간단하게 함수로 만들어놨습니다. 해당 엑셀에 있는 정보를 df화 해서 위 함수를 실행하면... 8806442062918 10 8806442063014 20 8806442063229 56 8806439009124 100 8806439004730 120 8806442062819 10 8806442066015 100 8806442065810 100 8806442065919 200 위와 같은 결과가 클립보드에 복사됩니다.
from selenium.webdriver.support.ui import Select select = Select(driver.find_element_by_id("select_id")) # Select 객체 생성 for option in select.options: if "특정문자열" in option.text: select.select_by_visible_text(option.text) # 해당 옵션을 선택합니다. Select는 유용한 기능이긴 하지만 반드시 텍스트 혹은 value와 일치해야 하는 단점이 존재한다. 그 부분을 해결하기 위해서 짜본 코드
my_list = ['', 'apple', '', 'banana', 'carrot', ''] # 빈 값이 있는지 확인 if '' in my_list: # 빈 값들을 제거 my_list = list(filter(lambda x: x != '', my_list)) print(my_list) # ['apple', 'banana', 'carrot']
import re text = "Hello [world], [123] Python [is] awesome." new_text = re.sub(r'\[.*?\]', '', text) print(new_text) # 출력: Hello Python awesome.
import random content = "폐어망·폐생수통이 '갤럭시 S23'으로 화려하게 변신" synonym_db = ["수려하게", "유려하게", "아름답게", "화려하게"] def synonym_random_select(synonym_db: list, word: str): filtered_list = [synonym for synonym in synonym_db if synonym != word] synonym = random.choice(filtered_list) return synonym def convert_content(content: str, synonym_db: list): for word in synonym_db: if word in content: print(f"'{word}'가 ..
pyinstaller -n "파일명" -w --onefile --clean "main.py" --add-data "venv/Lib/site-packages/newspaper;newspaper" newspaper3k 라이브러리는 html에서 기사나 필요한 본문만 추출해주는 라이브러리이다. 보통은 pyinsatller가 사용자의 기본 폴더 (Local\Temp\_MEIxxxxx) 폴더 내에 필요한 라이브러리들을 넣어주는데, 간혹가다가 못넣어주는 경우가 있다. pyinstaller로 빌드 시 경로를 못잡는 경우가 있는데, 이럴 때는 해당 라이브러리를 아예 pyinstaller에 명시적으로 넣어주면 된다. pyinstaller -n "파일명" -w --onefile --clean "main.py" --add-d..
pip install python-docx from docx import Document # 새로운 Document 객체 생성 doc = Document() # 저장할 문자열 my_text = "Hello, world!" # 문자열을 문서에 추가 doc.add_paragraph(my_text) # 문서 저장 doc.save('my_document.docx')
my_str = '10' print(my_str.isdigit()) my_str = '10ㅁㄴㅇㄹ' print(my_str.isdigit()) True False 형태로 출력된다.
구글 드라이브 API 사용 시 pyinstaller 빌드 후에 안될 때가 있다. build 부분에서 static_discovery=False 추가해주면 된다. build(API_NAME, API_VERSION, credentials=cred, static_discovery=False)
[준비물] 일단 ADB설정부터 마치고 와야함 https://uipath.tistory.com/279 [adb] android의 크롬을 개발자 도구(F12)로 확인해보기 아래의 글을 참고하여 adb device 설정까지 마쳐야 함 https://uipath.tistory.com/230 [adb] python 안드로이드 스마트폰 제어하기 1. 스마트폰과 연결하기 위해 구글 개발자 페이지에서 adb (android device bridge)를 uipath.tistory.com appium 클라이언트도 깔아야 함 https://appium.io/ Appium: Mobile App Automation Made Awesome. Appium Philosophy Appium is built on the idea tha..
my_list = ['a', 'b', 'c'] my_string = 'abcde' if any(s in my_string for s in my_list): print("포함") else: print("포함되어있지 않음") my_list = ['a', 'b', 'c'] my_string = 'ㄱㄴㄷㄻ' if any(s in my_string for s in my_list): print("포함") else: print("포함되어있지 않음") any() 함수를 활용해서 구분이 가능하다!!
driver.switch_to.parent_frame() driver.switch_to.default_content() 간혹 옥션 중고장터와 같이 여러개의 iframe으로 구성된 사이트가 있는데, 이러한 경우 유용하게 사용할 수 있다.
import datetime today = datetime.now() trial = datetime(2023, 2, 21) print(f"today: {today}, trail: {trial}") if today
아래의 글을 참고하여 adb device 설정까지 마쳐야 함 https://uipath.tistory.com/230 [adb] python 안드로이드 스마트폰 제어하기 1. 스마트폰과 연결하기 위해 구글 개발자 페이지에서 adb (android device bridge)를 설치합니다. https://developer.android.com/studio/releases/platform-tools?hl=ko#downloads SDK 플랫폼 도구 출시 노트 | Android 개발자 | An uipath.tistory.com 디바이스 확인이 완료되었으면 핵심만 요약 1. cmd 창에서 아래의 명령어 입력 adb shell am start -a android.intent.action.VIEW http://www.g..
for i, commonDto in enumerate(common_dto_list): print(f"{i}회차 작업") if i % 300 == 0: print(f'300회마다 해당 코드 실행') enumerate와 나머지값을 계산하는 % 를 활용
num: int = 10 name: str = '이름입니다.' driver: webdriver.Chrome = webdriver.Chrome("chromedriver.exe") 위와 같이 타입을 지정하는 코딩이 가능하다. 해당 변수들을 파라미터끼리 넘겨받다보면 vs code에서 타입을 구분하지 못하여 사용할 수 있는 메소드가 출력되지 않는데 위와 같이 타입을 지정해주면 사용 가능한 기능들이 정상적으로 출력된다. 예를 들면....
import json def get_page_json(self): driver = self.driver search_result = "" search_result = driver.find_element(By.CSS_SELECTOR, "body").get_attribute("textContent") search_result = json.loads(search_result) # print(search_result) return search_result dict 형태의 문자열을 변경
list = [2, 9, 3] list.insert(0, 'a') print(list) # ['a', 2, 9, 3]
file_path = '경로' if os.path.isfile(file_path): os.remove(file_path)
import re title = ' 입니다**' filename = re.sub('[\/:*?"|]','',title)+'.xls' print(filename) #제목 입니다.xls 특수문자를 제거합니다...
import os from enum import Enum from datetime import datetime import json from mimetypes import MimeTypes COMPANY_NAME = "회사이름" PROGRAM_ID = "프로그램이름" APP_DATA_PATH = os.path.join(os.getenv("APPDATA"), COMPANY_NAME) PROGRAM_PATH = os.path.join(APP_DATA_PATH, PROGRAM_ID) if os.path.isdir(APP_DATA_PATH) == False: os.mkdir(APP_DATA_PATH) if os.path.isdir(PROGRAM_PATH) == False: os.mkdir(PROGRAM_PATH..
sample_str = '123,456,789,' sample_str = ";".join(sample_str.rsplit(",", 1)) print(sample_str) 사실 replace가 아닌 join을 활용해서 해결함.
sample_list = [ "1", "2", "3", ] sample_str = ",".join(sample_list) print(sample_str) # 1,2,3 따옴표 안에 구분자를 설정할 수 있다. 위와 같은 경우에는 콤마를 구분자로 이어짐. 따옴표를 비우면 결과값이 123이 된다.
num_list = [1, 1, 3, 3, 5, 5, 7] num_list = list(dict.fromkeys(num_list)) print(num_list)
str = "Hello world, python" if "world" in str: print("Found world") else: print("Not found world") if "java" in str: print("Found java") else: print("Not found java") list를 비교할 때 사용하던 in을 이용해서 문자열도 간편하게 비교가 가능하다.
# 오늘 날짜 today = datetime.now() # 오늘 날짜에 3일 더하기 add_date = today + timedelta(days=3) # 해당 날짜를 원하는 형태로 형변환 ("2023. 01. 25") add_date = add_date.strftime(f"%Y. %m. %d")
content = '본문입니다.' pyperclip.copy(content) # 본문 span 클릭 content_span = driver.find_element(By.CSS_SELECTOR, 'div[data-a11y-title="본문"] p span') # 클립보드 붙여넣기 action = ActionChains(driver) ( action.move_to_element(content_span) .pause(1) .click() .key_down(Keys.CONTROL) .pause(1) .send_keys("v") .key_up(Keys.CONTROL) .pause(1) .perform() ) action.reset_actions() str을 클립보드에 복사한 후 webelement를 클릭하고 붙여..
self.scheduler = BackgroundScheduler(timezone="Asia/Seoul") self.scheduler.start() # 오늘 날짜 year = datetime.today().year month = datetime.today().month day = datetime.today().day print(f"{year} {month} {day}") # 오늘 날짜로 예약 설정 self.scheduler.add_job( self.search_start_button_clicked, "date", run_date=f"{year}-{month}-{day} {hh-mm-ss}" ) # 현재 스케쥴러 비우기 self.scheduler.shutdown() # 현재 스케쥴러의 상태 print(f"..
python의 globals() 함수를 활용하여 변수명을 선언한다. account_list = [ {"아이디": "1111", "비밀번호": "1111"}, {"아이디": "2222", "비밀번호": "2222"}, {"아이디": "3333", "비밀번호": "3333"}, ] for i, account in enumerate(account_list): print(f"{i} / {account}") id = account["아이디"] pw = account["비밀번호"] # 반복문 안에서 변수의 이름을 선언하는 globals() 함수 globals()[f"df_{i}"] = f"{id},{pw}" print(globals()[f"df_{0}"]) print(globals()[f"df_{1}"]) prin..
if 1 == 1: import sys import os sys.path.append(os.path.dirname(os.path.abspath(os.path.dirname(__file__)))) import os import pandas as pd class OrderFile: def __init__(self, filepath): self.filepath = filepath self.initData() def get_excel_data_type(self): return { "열1": str, "열2": str, "열3": str, } def initData(self): self.filepath = os.path.normpath(self.filepath) self.filename = os.path.base..