anaconda 활용법
아나콘다에서 할 수 있는 것을 먼저 확인해보자.
conda -h
conda --version : 아나콘다 버전확인
위와 같이 다양한 것을 할 수 있다.
자 이제 실제로 유용하게 쓸 수 잇는 목록을 크게 생성, 제거, 복구로 나누어 생각해보자.
생성 하기 전에 목록을 확인하는 방법은 다음과 같다.
conda env list : 가상환경 목록 확인
생성
conda create -n [가상환경이름] python=[버전 ex) 3.6]
-> conda create -n test python=3.6
-y를 붙여 주면 질문을 무시하고 생성할 수 있다.
가상환경을 쓸지 말지 위와같이 설정할 수 있다.
파이썬의 경우 패키지에 따라 함수가 없는 경우가 존재하므로 깔려 있는 패키지 목록과 버전을 확인해보자.
환경을 공유하기 위해서 가상환경에 설치된 환경을 추출해보자.
추출한 환경 목록으로 설치해보자.
삭제
백업
conda list --revisions
conda install --revision [revision num]
conda는 SQL의 savepoint와 다르게 새로 백업을 해도 savepoint보다 미래인 환경으로 돌아 갈 수 있다.
conda remove -n [가상환경] --all
주피터 노트북 커널 추가
conda create -y -n [가상환경명] ipykernel
python -m ipykernel install --user --name [가상환경] --display-name "등록될 이름"
jupyter kernelspec list
jupyter kernelspec remove [커널이름]
python -m ipykernel install --user --name pytorch --display-name "표출되고 싶은 커널 이름"
'python' 카테고리의 다른 글
명령프롬프트로 anaconda 열기 (0) | 2020.07.01 |
---|---|
pandas-profiling (0) | 2020.06.11 |
[postgreSQL] python에서 postgreSQL과 shape file 사용하기 (0) | 2020.03.15 |
python 메일 보내기 (0) | 2020.02.24 |
jupyter notebook 가상환경에 basemap 설치하기 (0) | 2020.02.23 |
[파이썬 ] 한글 자동화 보안모듈 등록
https://www.hancom.com/board/devdataView.do?board_seq=47&artcl_seq=4085&pageInfo.page=&search_text=
글로벌 소프트웨어의 리더, 한글과컴퓨터
◎ 첨부파일(보안모듈(Automation).zip)을 다운받으시고 압축을 해제 하시기 바랍니다. 구성물은 다음과 같습니다. 1. 보안모듈 소스 2. 보안모듈(FilePathCeckerModuleExample.dll) 3. 보안모듈 등록위치(레지스트리.JPG) 보안모듈을 특정위치에 설치하신 후, 레지스트리.JPG의 내용처럼, 보안모듈의 이름과 풀패스를 레지스트리 등록하신 뒤 사용하시기 바랍니다. 추가로 프로그램 소스에
www.hancom.com
C:\Program Files (x86)\Hnc//program files/Automation_Module 폴더 생성(폴더 명 무관)
압축 푼 파일 다운로드
경로 복사
(shift + F10 )>a
레지스트리 편집기 실행( regdit 입력)
HKEY_CURRENT_USER>Software>HNC>HwpAutomation>Modules
혹시 없는 경로가 있다면 키를 생성하여 정확한 이름 입력
Modules에 새로 만들기> 문자열값
이름은 기억하기 쉬운것으로(SecurityModule)로 저장
수정>값 데이터에 아까 복사한 경로를 붙여넣고 "을 제거하여 저장
https://www.youtube.com/watch?v=2Cv16_ZO5rk&list=PLalzN02jITUtke62DP2PHZ6mkDid72IC_&index=5
#shift alt h
#shift alt x
#shift alt l
#alt c
'python > hwp' 카테고리의 다른 글
win32com.client CLSIDToPackageMap 에러 해결 (0) | 2020.06.09 |
---|
python selenium 자주쓴거 정리
from selenium import webdriver
from selenium.webdriver.support.ui import Select
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.alert import Alert
import time
import os
import shutil
import re
import pandas as pd
directory=r'<저장될 경로>'
options = webdriver.ChromeOptions()
############
# 창이 뜨지 않게 설정
options.add_argument('headless')
# 창 크기 조절 설정
options.add_argument('window-size=1920x1080')
options.add_argument("disable-gpu")
# F11 전체 화면 설정
options.add_argument('--start-fullscreen')
###############
# 기본 다운로드 경로 설정 /쓰지 말고 \\로 사용할 것.
options.add_experimental_option("prefs", {
"download.default_directory": directory,
"download.prompt_for_download": False,
"download.directory_upgrade": True,
"safebrowsing.enabled": True
})
#웹 열기
driver = webdriver.Chrome(executable_path='c:/selenium/chromedriver', chrome_options=options)
#될때까지 기다리게하기
wait= WebDriverWait(driver, 10)
temp2=wait.until(EC.presence_of_all_elements_located((By.CSS_SELECTOR, "input#ststistic_period")))
#alert 팝업 확인하기
Alert(driver).text
#case 1
alert = driver.switch_to.alert
alert.accept()
#case 2
Alert(driver).accept()
#iframe 이동하기
# 상위로 이동
driver.switch_to.default_content()
driver.switch_to.frame(<iframe name>)
#iframe은 아닌데 비슷한게 있는듯.( 예 : chrome download)
shadow_root = driver.execute_script('return arguments[0].shadowRoot', <element>)
#select 버튼에 값 입력
Select(driver.find_element_by_css_selector(<CSS>)).select_by_value(<value>)
#캡처
driver.get_screenshot_as_file('<파일명>.png')
#driver 내에 열린 창 목록 가져오기
main=driver.window_handles[0]
#사용중인 창 바꾸기
driver.switch_to.window(driver.window_handles[pop])
#자바스크립트 보내기
driver.execute_script('$javascript:doSelect();')
#요소로 마우스 이동시키기
action=ActionChains(driver)
action.move_to_element(mainmenu)
그 외 참고
'python > crawling' 카테고리의 다른 글
[Selenium] 기상자료 크롤링 (1) | 2021.04.03 |
---|---|
크롤링과 python (0) | 2021.04.03 |
나라장터 open api crawling (0) | 2020.03.01 |
[나라장터] 크롤링 (2) | 2019.11.14 |
selenium 사용해서 위경도 가져오기 (0) | 2019.03.20 |
[postgreSQL] python에서 postgreSQL과 shape file 사용하기
postgeSQL 사용을 위한 SQL에 넣는 방법과 가져오는 방법¶
연결하기¶
import psycopg2
!conda install -c anaconda psycopg2 -y
conn = psycopg2.connect(
"host='<도메인>' dbname='<DB명>' user='<사용자명>' password='<비번>'")
cur = conn.cursor()
from sqlalchemy import create_engine
e = create_engine('postgresql://<사용자명>:<비번>@<도메인>:<port>/<DB명>')
파일 DB에 밀어넣기¶
cur.execute("""SELECT table_name FROM information_schema.tables
WHERE table_schema = 'public'""")
for table in cur.fetchall():
print(table)
import pandas as pd
score = pd.DataFrame(
{
'date': ['2019-07-28'] * 4,
'name': ['kim', 'lee', 'choi', 'park'],
'age': [19, 20, 19, 20],
'math_score': [91, 95, 92, 70],
'pass_yn': [True, True, True, False]
},
columns=['date', 'name', 'age', 'math_score', 'pass_yn'])
score
score.to_sql(name='score', con=e)
cur.execute("""SELECT table_name FROM information_schema.tables
WHERE table_schema = 'public'""")
for table in cur.fetchall():
print(table)
지도자료 밀어넣기¶
import pyproj
from fiona.crs import from_epsg
from sqlalchemy import *
from geoalchemy2 import Geometry
from geoalchemy2 import WKTElement
import geopandas as gpd
shp = gpd.read_file('./CTPRVN_201905/TL_SCCO_CTPRVN.shp', encoding='cp949')
shp
shp.plot(column='CTP_KOR_NM')
shp1 = shp.copy()
shp1.to_sql('a', e, if_exists='replace', index=False)
바로 넣으면 에러가 뜸 shapely를 활용할 예정
import shapely
test = shp1.geometry[1]
test
shapely.wkt.dumps(test)[1:100]
shapely.wkt.loads(shapely.wkt.dumps(shp1.geometry[1]))
shp1['geometry'] = shp1.apply(lambda x: shapely.wkt.dumps(x.geometry), axis=1)
shp1
type(shp1)
shp1.to_sql('a', e, if_exists='replace', index=False)
밀어넣기가 잘 된거 같으나 ...
import pandas as pd
shp1 = pd.read_sql('select * from a', e)
shp1
type(shp1)
가지고 오면 자료의 타입은 pandas 므로 geopandas 로 바꾸어 줘야되며
import geopandas as gpd
shp1 = gpd.GeoDataFrame(shp1)
type(shp1)
shp1.plot()
dump로 바꾼부분때문에 그림이 그려지지 않으므로 loads해주고 사용하여야 된다.
shp1['geometry'] = shp1.apply(lambda x: shapely.wkt.loads(x.geometry), axis=1)
shp1.plot()
shp.plot(column='CTP_KOR_NM')
동적인 그림 그리기¶
from fiona.crs import from_epsg
import folium
m = folium.Map(location=[40.730610, -73.935242],
tiles='Stamen Toner',
zoom_start=12,
control_scale=True,
prefer_canvas=True)
m
'python' 카테고리의 다른 글
pandas-profiling (0) | 2020.06.11 |
---|---|
anaconda 활용법 (0) | 2020.06.04 |
python 메일 보내기 (0) | 2020.02.24 |
jupyter notebook 가상환경에 basemap 설치하기 (0) | 2020.02.23 |
numpy 정리(1) (0) | 2020.02.18 |
나라장터 open api crawling
import pandas as pd
from bs4 import BeautifulSoup
import requests
import urllib
from urllib import parse
from datetime import datetime, timedelta
from datetime import date
import re
import math
today = date.today()
start=re.sub('-','',str(today - timedelta(days=60)))
end=re.sub('-','',str(today))
priceUp=2000000
priceDown=200000000000
key='오픈api'
link='http://apis.data.go.kr/1230000/BidPublicInfoService/getBidPblancListInfoServcPPSSrch?type=json&inqryDiv=1&dminsttNm='+parse.quote('해양수산부')+'&inqryBgnDt='+start+'&inqryEndDt='+end+'&pageNo=1&numOfRows=1&ServiceKey='+key
url = parse.urlparse(link)
query = parse.parse_qs(url.query)
base='http://apis.data.go.kr/1230000/BidPublicInfoService/getBidPblancListInfoServcPPSSrch?'
link=base+parse.urlencode(query, doseq=True)
request=urllib.request.urlopen(link).read().decode('utf-8')
n=math.ceil(json.loads(request)['response']['body']['totalCount']*.1)
n
page=1
link='http://apis.data.go.kr/1230000/BidPublicInfoService/getBidPblancListInfoServcPPSSrch?type=json&inqryDiv=1&dminsttNm='+parse.quote('해양수산부')+'&inqryBgnDt='+start+'&inqryEndDt='+end+'&pageNo='+str(page)+'&numOfRows=10&ServiceKey='+key
url = parse.urlparse(link)
query = parse.parse_qs(url.query)
link=base+parse.urlencode(query, doseq=True)
request=urllib.request.urlopen(link).read().decode('utf-8')
df=pd.DataFrame(json.loads(request)['response']['body']['items'])
df2=df[['bidNtceNm','asignBdgtAmt','bidBeginDt','bidClseDt','opengDt','bidMethdNm','cntrctCnclsMthdNm','dminsttNm','dminsttCd','bidNtceNo','reNtceYn','ntceKindNm','bidNtceDtlUrl']]
df2.rename(columns = {'asignBdgtAmt' : '배정예산','bidNtceNm':'공고명','bidBeginDt':'입찰개시일','bidClseDt':'입찰마감일'
,'opengDt':'개찰일시','bidMethdNm':'입찰방식','cntrctCnclsMthdNm':'계약체결방법','dminsttCd':'수요기관코드'
,'dminsttNm':'수요기관명','bidNtceNo':'입찰공고번호','reNtceYn':'재공고여부','ntceKindNm':'공고종류','bidNtceDtlUrl':'링크'}, inplace = True)
data=df2
data
'python > crawling' 카테고리의 다른 글
[Selenium] 기상자료 크롤링 (1) | 2021.04.03 |
---|---|
크롤링과 python (0) | 2021.04.03 |
python selenium 자주쓴거 정리 (0) | 2020.03.23 |
[나라장터] 크롤링 (2) | 2019.11.14 |
selenium 사용해서 위경도 가져오기 (0) | 2019.03.20 |
python 메일 보내기
gmail 접속> 우측 상단에 톱니바퀴모양 환경설정 클릭(아래 그림 참고) > 전달 및 POP/IMAP 클릭> IMAP사용
위를 아래와 같이 변경
gmail은 보안이 철저하므로 아래와 같이 설정이 필요함.
네이버는 아래 그림과 같이 환경설정 클릭
위와같이 설정
[Python] 파이썬으로 이메일 보내기
이번 포스팅에서는 파이썬에서 이메일을 사용하는 방법에 대해 알아보자. 사실 이메일을 보내기 위해서는 ...
blog.naver.com
http://hleecaster.com/python-email-automation/
파이썬 이메일 자동화 (이메일 대량 발송) - 아무튼 워라밸
회사에서 업무를 하다 보면 여러명에게 각각 다른 제목과 내용으로 (심지어 각각 다른 첨부파일을 포함해서) 이메일을 보내야 할 때가 있다. 손으로 보내긴 귀찮으니 파이썬으로 자동화하는 코드를 최대한 간단히 짜보았다.
hleecaster.com
'python' 카테고리의 다른 글
anaconda 활용법 (0) | 2020.06.04 |
---|---|
[postgreSQL] python에서 postgreSQL과 shape file 사용하기 (0) | 2020.03.15 |
jupyter notebook 가상환경에 basemap 설치하기 (0) | 2020.02.23 |
numpy 정리(1) (0) | 2020.02.18 |
주피터 노트북 변수 보기 및 실행시간 자동확인(Extensions) (0) | 2020.02.16 |