๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

728x90

์ „์ฒด ๊ธ€

(74)
[Python] datetime.weekday() ๐Ÿ“Œ ์‚ฌ์šฉ๋ฒ• from datetime import datetimecurrent_date = datetime.now()print(current_date.weekday())์ด ์ฝ”๋“œ๋Š” ์˜ค๋Š˜์˜ ์š”์ผ์„ ์ˆซ์ž๋กœ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ๐Ÿ“Œ ๋ฐ˜ํ™˜ ๊ฐ’๋ฐ˜ํ™˜ ๊ฐ’์š”์ผ0์›”์š”์ผ (Monday)1ํ™”์š”์ผ (Tuesday)2์ˆ˜์š”์ผ (Wednesday)3๋ชฉ์š”์ผ(Thursday)4๊ธˆ์š”์ผ(Friday)5ํ† ์š”์ผ(Saturday)6์ผ์š”์ผ(Sunday) ๐Ÿ“Œ ์˜ˆ์ œ1๏ธโƒฃ ์˜ค๋Š˜์˜ ์š”์ผ ์ถœ๋ ฅfrom datetime import datetimetoday = datetime.now()print("์˜ค๋Š˜์˜ ์š”์ผ (์ˆซ์ž):", today.weekday())# ์ˆซ์ž๋ฅผ ์š”์ผ๋กœ ๋ณ€ํ™˜days = ["์›”","ํ™”","์ˆ˜","๋ชฉ","๊ธˆ","ํ† ","์ผ"]print("์˜ค๋Š˜์˜ ์š”์ผ:"..
[Python] APScheduler ๊ฐ€์ด๋“œ ๐Ÿ“Œ1. APScheduler ์„ค์น˜ํ•˜๊ธฐpip install apscheduler ์ถ”๊ฐ€์ ์ธ ์˜์กด์„ฑ ์„ค์น˜APScheduler๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ `threading`์„ ์‚ฌ์šฉํ•˜์ง€๋งŒ, ์‹คํ–‰ ํ™˜๊ฒฝ์— ๋”ฐ๋ผ ๋‹ค๋ฅธ ๋ฐฉ์‹๋„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.ํŠน์ • ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์•„๋ž˜ ํŒจํ‚ค์ง€๋„ ํ•จ๊ป˜ ์„ค์น˜ํ•ด์•ผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.๋”๋ณด๊ธฐpip install apscheduler[asyncio] # asyncio ํ™˜๊ฒฝ ์ง€์› pip install apscheduler[gevent] # gevent ํ™˜๊ฒฝ ์ง€์› pip install apscheduler[tornado] # tornado ํ™˜๊ฒฝ ์ง€์› pip install apscheduler[redis] # Redis ๊ธฐ๋ฐ˜ Job Store ์‚ฌ์šฉ ๐Ÿ“Œ 2. APScheduler์˜ ์ฃผ์š” ๊ฐœ๋…APScheduler๋Š” ์—ฌ๋Ÿฌ..
[Python] strftime๊ณผ strptime Python์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐœ๋ฐœ์„ ํ•˜๋‹ค ๋ณด๋ฉด ๋‚ ์งœ๋ฅผ ๋‹ค๋ค„์•ผ ํ•˜๋Š” ์ผ์ด ์ •๋ง ๋งŽ๋‹ค.ํ•ญ์ƒ ๊ฒ€์ƒ‰ํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋‹ค ํ•œ๋ฒˆ ์ •๋ฆฌํ•ด๋ณด์ž! ๋ผ๋Š” ์ƒ๊ฐ์œผ๋กœ ๊ธ€์„ ์จ๋ณธ๋‹ค. ์ƒ๊ฐํ•ด๋ณด๋‹ˆ ํ‰์†Œ์— ์ œ์ผ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ๋‘ ํ•จ์ˆ˜๊ฐ€ `strftime`๊ณผ `strptime`์ธ ๊ฒƒ ๊ฐ™๋‹ค. ๋‚ ์งœ์™€ ์‹œ๊ฐ„(datetime)์„ ๋ฌธ์ž์—ด๋กœ ์ถœ๋ ฅํ•˜๋ ค๋ฉด `strftime`๋‚ ์งœ์™€ ์‹œ๊ฐ„ ํ˜•์‹์˜ ๋ฌธ์ž์—ด์„ datetime์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋ ค๋ฉด `strptime`์„ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค. ๊ธฐ๋ณธ์ ์ธ ์‚ฌ์šฉ ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.import datetimenow = datetime.datetime.now()date = now.strftime('%Y-%m-%d')print(date) # 2021-04-08 time = now.strftime('%H:%M:%S')print(time)..
[Python] ์ด๋ฉ”์ผ์— ํŒŒ์ผ ์ฒจ๋ถ€ํ•˜๊ธฐ - smtplib ๋ฉ”์ผ ๊ฐ์ฒด ์ƒ์„ฑ์ด๋ฉ”์ผ ๋ฐœ์†ก์„ ํ•˜๋ ค๋ฉด ๋จผ์ € `smtplib`๋ชจ๋“ˆ์ด ํ•„์š”ํ•˜๋‹ค.import smtplib๋ฐœ์†กํ•  ๋ฉ”์‹œ์ง€๋Š” email ๋ชจ๋“ˆ์„ ์ด์šฉํ•˜์—ฌ ์ž‘์„ฑํ•œ๋‹ค. ๋ฉ”์‹œ์ง€์—๋Š” ํŒŒ์ผ์„ ์ฒจ๋ถ€ํ•ด์•ผ ํ•˜๋ฏ€๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์€ `MIMEMultipart`ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.from email.mime.multipart import MIMEMultipartmsg = MIMEMultipart() ๋ณด๋‚ด๋Š” ์‚ฌ๋žŒ๊ณผ ๋ฐ›๋Š” ์‚ฌ๋žŒ์„ ์„ค์ • ๊ทธ๋ฆฌ๊ณ  ์ƒ์„ฑํ•œ ๋ฉ”์‹œ์ง€ ๊ฐ์ฒด์— ๋ณด๋‚ด๋Š” ์‚ฌ๋žŒ๊ณผ ๋ฐ›๋Š” ์‚ฌ๋žŒ์„ ์„ค์ •ํ•œ๋‹ค.msg['From'] = 'local@gmail.com'msg['To'] = 'local@gmail.com' ๋”๋ณด๊ธฐ์ด๋ฉ”์ผ์„ ์—ฌ๋Ÿฌ๋ช…์—๊ฒŒ ๋ฐœ์†กํ•˜๋ ค๋ฉด์ˆ˜์‹ ์ธ์ด ํ•œ ๋ช…์ด ์•„๋‹Œ ์—ฌ๋Ÿฌ ๋ช…์ด๋ผ๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด `์‰ผํ‘œ+๊ณต๋ฐฑ` ์œผ๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ์ถ”๊ฐ€ํ•œ๋‹ค.msg['To'..
RFC 5322 RFC 5322์ธํ„ฐ๋„ท ๋ฉ”์‹œ์ง€ ํ˜•์‹์— ๋Œ€ํ•œ ํ‘œ์ค€์„ ์ •์˜ํ•œ ๋ฌธ์„œ๋กœ, ์ „์ž๋ฉ”์ผ์˜ ๋ฉ”์‹œ์ง€ ํ—ค๋”์™€ ๋ณธ๋ฌธ ํ˜•์‹์„ ๊ทœ์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด ํ‘œ์ค€์€ ์ด๋ฉ”์ผ ์‹œ์Šคํ…œ ๊ฐ„์˜ ๋ฉ”์‹œ์ง€ ์ „์†ก, ํ˜•์‹, ์ฒ˜๋ฆฌ ๋ฐฉ๋ฒ•์„ ์ •์˜ํ•˜๋ฉฐ, ์ด๋ฉ”์ผ ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๊ฐ€ ์ƒํ˜ธ ์ž‘์šฉํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๊ทœ์น™์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. RFC 5322์ธํ„ฐ๋„ท ๋ฉ”์‹œ์ง€ ํ˜•์‹์— ๋Œ€ํ•œ ํ‘œ์ค€์„ ์ •์˜ํ•œ ๋ฌธ์„œ๋กœ, ์ „์ž๋ฉ”์ผ์˜ ๋ฉ”์‹œ์ง€ ํ—ค๋”์™€ ๋ณธ๋ฌธ ํ˜•์‹์„ ๊ทœ์ •์ด๋Š” ๋ณดํŽธ์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ์ธํ„ฐ๋„ท ๊ธฐ๋ฐ˜ ํ…์ŠคํŠธ ๋ฉ”์ผ ๋ฉ”์‹œ์ง€ ํ‘œ์ค€์ด๋‹ค. ํ—ค๋”(Header) ํ˜•์‹: ๋ฉ”์‹œ์ง€์˜ ํ—ค๋” ๋ถ€๋ถ„์€ ์ˆ˜์‹ ์ž, ๋ฐœ์‹ ์ž, ์ œ๋ชฉ, ๋‚ ์งœ, ์ฐธ์กฐ ๋“ฑ์„ ํฌํ•จํ•˜๋Š” ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ๋‹ด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.์˜ˆ๋ฅผ ๋“ค์–ด, From, To, Subject, Date, Message-ID, Reply-To ๋“ฑ์˜ ํ•„๋“œ๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.ํ—ค๋”๋Š” ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํ•„๋“œ๋ฅผ ๊ฐ€์งˆ ์ˆ˜..
[Python] ํŒŒ์ด์ฌ ๋‚ ์งœ ํ‘œํ˜„ ํ•œ๊ธ€ ์—๋Ÿฌ ํŒŒ์ด์ฌ์—์„œ ์˜ค๋Š˜ ๋‚ ์งœ๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๋ฒ•from datetime import datetime as dttoday = dt.now().date()print(today)-----------------------------------------# ์‹คํ–‰๊ฒฐ๊ณผ2024-11-14----------------------------------------- ํ˜•์‹์„ ์ง€์ •ํ•ด์ฃผ๋Š” ๋ฒ•๊ธฐํ˜ธtoday = dt.now().strftime('%Y. %m. %d.')print(today)-----------------------------------------# ์‹คํ–‰๊ฒฐ๊ณผ2024. 11. 14-----------------------------------------์˜์–ดtoday = dt.now().strftime('year: %Y month: ..
[SMTP] gmail Outlook(๋ณด์•ˆ ์ˆ˜์ค€์ด ๋‚ฎ์€ ์•ฑ) ์—ฐ๋™ ๋ฐฉ๋ฒ• Google์—์„œ 'Less Secure Apps Option'์„ 2022๋…„ 5์›”๋ถ€๋กœ ์ค‘๋‹จํ–ˆ๋‹ค์•Œ๊ณ ๋ณด๋‹ˆ SMTP๋Š” ํ•œ ๊ณ„์ •์˜ ์ด๋ฉ”์ผ ์ฃผ์†Œ์™€ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ํ™œ์šฉํ•ด์„œ ์ด๋ฉ”์ผ์„ ๋ฐœ์†กํ–ˆ๋Š”๋ฐ, ์ด ๋ฐฉ์‹์ด ๋ณด์•ˆ ์ˆ˜์ค€์ด ๋‚ฎ์€ ์•ฑ ์œผ๋กœ ๊ตฌ๋ถ„๋˜๊ณ  ์žˆ์—ˆ๋‹ค๋Š” ์ ์ด๋‹ค. ์ข€ ๋” ์ฐพ์•„๋ณด๋‹ˆ ๊ตฌ๊ธ€์ด ๋ณด์•ˆ ์ˆ˜์ค€์ด ๋‚ฎ์€ ์•ฑ์„ ์ œํ•œํ•˜๊ธฐ ์‹œ์ž‘ํ•œ ์ด์œ ๋Š” ๋‹จ์ˆœํžˆ ์ด๋ฉ”์ผ๊ณผ ๋น„๋ฐ€๋ฒˆํ˜ธ๋งŒ์œผ๋กœ ์ ‘๊ทผํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ์–ดํ”Œ / ๊ธฐ๋Šฅ์€ ๊ณ„์ •์ด๋‚˜ ๊ธฐ๊ธฐ๊ฐ€ ์œ ์ถœ๋  ๊ฐ€๋Šฅ์„ฑ์„ ๋†’์ด๊ธฐ ๋•Œ๋ฌธ์ด๋ผ๊ณ  ํ•œ๋‹ค. ์•ฑ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ƒ์„ฑํ•˜์—ฌ Outlook ๋น„๋ฐ€๋ฒˆํ˜ธ๋กœ ์‚ฌ์šฉ!์•ฑ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ž€ ๋ณด์•ˆ ์ˆ˜์ค€์ด ๋‚ฎ์€ ์•ฑ ๋˜๋Š” ๊ธฐ๊ธฐ์— Google ๊ณ„์ •์— ๋Œ€ํ•œ ์•ก์„ธ์Šค ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜๋Š” 16์ž๋ฆฌ ๋น„๋ฐ€๋ฒˆํ˜ธ ์ž…๋‹ˆ๋‹ค. ์•ฑ ๋น„๋ฐ€๋ฒˆํ˜ธ๋Š” 2๋‹จ๊ณ„ ์ธ์ฆ์ด ์‚ฌ์šฉ ์„ค์ •๋œ ๊ณ„์ •์—์„œ๋งŒ ์ด์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 1. Google ํ™”๋ฉด..
[Python] UIAutomation for Windows ๊ฐ์ฒด ์ปจํŠธ๋กคํ•˜๊ธฐ `Autoit`์€ Python์˜ ๋ชจ๋“ˆ๋กœ, Python์„ ํ†ตํ•ด์„œ window GUI๋ฅผ ์ปจํŠธ๋กค ํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“ˆ์ด๋‹ค. ๋ชจ๋“ˆ์„ importํ•œ ํ›„, `Autoit`ํ”„๋กœ๊ทธ๋žจ์„ ํ†ตํ•ด์„œ window GUI๋“ค์˜ ์ •๋ณด๋ฅผ ์•Œ์•„๋‚ด์–ด์„œ ์ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ชจ๋“ˆ์˜ ๋ช…๋ น๋ฌธ๋“ค๋กœ ํ•ธ๋“ค๋งํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค. ์ดˆ๊ธฐ๋ฒ„์ „ windows์˜ GUI ๊ฐ์ฒด ์ปจํŠธ๋กค์€ `Autoit`์œผ๋กœ ๋ชจ๋‘ ๊ฐ€๋Šฅํ–ˆ๋‹ค. ํ•˜์ง€๋งŒ windows์˜ ๋ฒ„์ „์ด ์˜ฌ๋ผ๊ฐ์— ๋”ฐ๋ผ์„œ ์ƒˆ๋กœ์šด UI ์š”์†Œ๋ฅผ ๊ทธ๋ฆด ์ˆ˜ ์žˆ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ๊ณต๊ฐœ๋˜์—ˆ๋‹ค. ๊ทธ๊ฒƒ์ด `.Net Framework` ์ด๋‹ค. ํ˜„์žฌ ๋Œ€๋ถ€๋ถ„์˜ ์ฐฝ๋“ค์€ ๋ชจ๋‘ .Net Framework 3.0 ์ดํ›„์˜ ๋ฒ„์ „์„ ์‚ฌ์šฉํ•ด์„œ ๊ทธ๋ ค์ง€๊ณ  ์žˆ๋‹ค. ์ด์— ๋”ฐ๋ผ MS์—์„œ๋Š” .Net Framework์˜ GUI ๊ฐ์ฒด ์ปจํŠธ๋กค์„ ์œ„ํ•ด์„œ `UIAutomation API`..

728x90