neo-beyond-blog
neo-beyond-blog
Beyond Me
8 posts
Don't wanna be here? Send us removal request.
neo-beyond-blog ยท 6 years ago
Text
์—‘์…€ ์กฐ์ž‘
์ด๊ณณ์„ ์ฐธ์กฐํ–ˆ๋‹ค.
ํŒŒ์ด์ฌ์—์„œ ๋‹ค๋ฃจ๋Š” ์—‘์…€(import openpyxl) ์š”์†Œ๋Š” 3๊ฐ€์ง€๋กœ ๊ตฌ์„ฑ๋œ๋‹ค.
workbook-์—‘์…€ํŒŒ์ผ ์ „์ฒด, worksheet- ์‹œํŠธ ํ•˜๋‚˜, cell-์…€ ํ•˜๋‚˜
import openpyxl
<Workbook ์˜์—ญ>
wb = openpyxl.Workbook() //์—‘์…€ํŒŒ์ผ ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค์–ด ๋ณ€์ˆ˜์— ์ €์žฅ, ์‹œํŠธ๋Š” 1๊ฐœ๋‹ค.
wb2 = openpyxl.load_workbook('test2.xlsx') // ์ด ์œ„์น˜์— ์กด์žฌํ•˜๋Š” ์—‘์…€ ํŒŒ์ผ๋ช…์„ ์—ด์–ด ๋ณ€์ˆ˜์— ์ €์žฅํ•œ๋‹ค.
wb.save('test.xlsx') //์—‘์…€๊ฐ์ฒด๋ฅผ ํŒŒ์ผ๋กœ ์ €์žฅ
<Worksheet ์˜์—ญ>
sheet1 = wb.active //ํ™œ์„ฑํ™”๋œ ์‹œํŠธ๊ฐ์ฒด๋ฅผ ์„ ํƒํ•ด ๋ณ€์ˆ˜์— ํ• ๋‹นํ•œ๋‹ค. workbook์„ ์ƒ์„ฑํ–ˆ๋‹ค๋ฉด ์ฒซ๋ฒˆ์งธ ์‹œํŠธ๊ฐ€ ์„ ํƒ๋œ๋‹ค.
sheet2 = wb.create_sheet('๋‘๋ฒˆ์งธ') //์ƒˆ๋กœ์šด ์‹œํŠธ๋ฅผ ๋งŒ๋“ ๋‹ค.
sheet2_clone = wb['๋‘๋ฒˆ์งธ'] //์ด๋ฏธ ์กด์žฌํ•˜๋Š” ์‹œํŠธ๋Š” ๋”•์…”๋„ˆ๋ฆฌ ํ˜•ํƒœ๋กœ ๋ถˆ๋Ÿฌ์™€ ๋ณ€์ˆ˜์— ์ €์žฅํ•  ์ˆ˜ ์žˆ๋‹ค.
sheet2.title = '์ƒˆ๋กœ์šด ์‹œํŠธ๋ช…' //์›Œํฌ์‹œํŠธ.title ์†์„ฑ์œผ๋กœ ์‹œํŠธ๋ช…์„ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ๋‹ค.
<cell ์˜์—ญ>
sheet1['A3'] = 5 //์…€ ๊ฐ’์„ ๋ณ€๊ฒฝํ•œ๋‹ค.
sheet1.cell(row=3, column=2).value = 3 //์†์„ฑ์œผ๋กœ ์…€ ๊ฐ’์„ ๋ณ€๊ฒฝํ•œ๋‹ค. ์ด๊ฒฝ์šฐ B3
sheet1.append([1, 2, 3, 4, 5]) //์›Œํฌ์‹œํŠธ์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ๋“ค์–ด๏ฟฝ๏ฟฝ๋Š” ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰ ํ–‰ ๋‹ค์Œ ์ค„์— ์ด ๋ฆฌ์ŠคํŠธ ๊ฐ’๋“ค์„ ๊ฐ ์—ด์— ์ฒซ์—ด๋ถ€ํ„ฐ ์ถ”๊ฐ€ํ•œ๋‹ค.
0 notes
neo-beyond-blog ยท 6 years ago
Text
์ •๊ทœํ‘œํ˜„์‹
์ •๊ทœํ‘œํ˜„์‹์€ ํŠน์ •ํ•œ ๊ทœ์น™์œผ๋กœ ๋œ ๋‹ค์ˆ˜์˜ ํ…์ŠคํŠธ์— ์ผ๊ด„์ ์œผ๋กœ ์ž‘์—…ํ•˜๊ธฐ ์œ„ํ•ด ์“ด๋‹ค.
์˜ˆ๋ฅผ ๋“ค์–ด ํฐ ๋ฒˆํ˜ธ๊ฐ€ 100๊ฐœ ์žˆ๋Š”๋ฐ ๋งˆ์ง€๋ง‰ 4์ž๋ฆฌ๋ฅผ ๋‹ค *์ฒ˜๋ฆฌํ•ด์„œ 010-9484-**** ์ด๋Ÿฐ์‹์œผ๋กœ ๋ฐ”๊พธ๊ณ  ์‹ถ์„ ๋•Œ ์“ด๋‹ค.
โ˜† ๊ทœ์น™ ์ •์˜ํ•˜๋Š”๋ฒ•
[๋ฌธ์ž]๋Š” ์ด ์•ˆ์˜ ๋ฌธ์ž๋ฅผ ํฌํ•จํ•œ๋‹ค๋ฉด ๊ทธ๊ฒƒ์„ ์„ ํƒํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด [abc]๋Š” a๋‚˜ b๋‚˜ c์ค‘ ํ•˜๋‚˜๋ผ๋„ ํฌํ•จํ•˜๋ฉด ์„ ํƒํ•œ๋‹ค.
[๋ฌธ์ž1-๋ฌธ์ž2]๋Š” ๋ฌธ์ž1์ด์ƒ ๋ฌธ์ž2์ดํ•˜๋ฅผ ํฌํ•จํ•˜๋Š”๊ฑธ ์„ ํƒํ•œ๋‹ค. [0-9]๋Š” ์ˆซ์ž์ผ๊ฒฝ์šฐ [a-z]๋Š” ์†Œ๋ฌธ์ž ์•ŒํŒŒ๋ฒณ์ผ๊ฒฝ์šฐ [a-zA-Z]๋Š” ์†Œ, ๋Œ€๋ฌธ์ž ์•ŒํŒŒ๋ฒณ์ผ ๊ฒฝ์šฐ์ด๋‹ค. [1-3]์€ [123]์ด๋‹ค.
[^๋ฌธ์ž]๋Š” ๊ทธ ๋ฌธ์ž๊ฐ€ ์•„๋‹Œ ๊ฒƒ์„ ์ „๋ถ€ ์„ ํƒํ•œ๋‹ค. [^0-9]๋Š” ์ˆซ์ž๊ฐ€ ์•„๋‹Œ ๊ฒƒ. [^a-z]๋Š” ์†Œ๋ฌธ์ž ์•ŒํŒŒ๋ฒณ์ด ์•„๋‹Œ ๊ฒƒ. [^a-zA-Z]๋Š” ์•ŒํŒŒ๋ฒณ์ด ์•„๋‹Œ๊ฒƒ์ด๋‹ค.
์ •๊ทœํ‘œํ˜„์‹ ๋‹จ์ถ• ํ‘œ๊ธฐ๋ฒ•์„ ์™ธ์›Œ๋‘๋ฉด ํŽธ๋ฆฌํ•˜๋‹ค. ๋Œ€๋ฌธ์ž๋กœ ์“ฐ๋ฉด not(๋ฐ˜๋Œ€)์„ ์˜๋ฏธํ•œ๋‹ค.
\d ์ˆซ์ž(dight) [0-9] \D๋Š” ์ˆซ์ž๊ฐ€ ์•„๋‹Œ๊ฒƒ.
\w ๋ฌธ์ž+์ˆซ์ž(word) [a-zA-Z0-9_]์ด๋‹ค. \W๋Š” ๋ฌธ์ž+์ˆซ์ž๊ฐ€ ์•„๋‹Œ๊ฒƒ
โ™ก\s
.๋Š” ์ค„๋ฐ”๊ฟˆ(\n)์„ ์ œ์™ธํ•œ ์–ด๋–ค ๋ฌธ์ž๋“  ํ•˜๋‚˜๊ฐ€ ์žˆ์–ด์•ผ ํ•œ๋‹ค๋Š” ๋œป์ด๋‹ค. a.b๋Š” "a์–ด๋–ค๋ฌธ์žb"๋ฅผ ์„ ํƒํ•œ๋‹ค. ์˜ˆ๋ฅผ๋“ค์–ด a3b
a[.]b๋Š” ์œ„๋ž‘ ๋‹ฌ๋ฆฌ "a.b" ๋งŒ ์„ ํƒํ•œ๋‹ค. a3b๋Š” ์•ˆ๋œ๋‹ค. []์•ˆ์— ๋“ค์–ด๊ฐ€๋ฉด ๊ทธ ๋ฌธ์ž ์ž์ฒด๋งŒ์„ ์˜๋ฏธ.
โ˜† ๋ฐ˜๋ณต
*๋Š” ์•ž์˜ ๋ฌธ์ž๊ฐ€ 0๊ฐœ ์ด์ƒ์ด๋ผ๋Š” ๋œป์ด๋‹ค. ์—†์–ด๋„ ๋˜๊ณ  100๊ฐœ๊ฐ€ ์žˆ์–ด๋„ ๋œ๋‹ค. so*๋Š” s๋„ sooo๋„ ์„ ํƒํ•œ๋‹ค.
+๋Š” ์•ž์˜ ๋ฌธ์ž๊ฐ€ 1๊ฐœ ์ด์ƒ์ด๋ผ๋Š” ๋œป์ด๋‹ค. so+๋Š” so, soooo๋ฅผ ์„ ํƒํ•œ๋‹ค.
?๋Š” ์•ž์˜ ๋ฌธ์ž๊ฐ€ 0๊ฐœ๋˜๋Š” 1๊ฐœ๋ผ๋Š” ๋œป์ด๋‹ค. so?๋Š” s, so๋ฅผ ์„ ํƒํ•œ๋‹ค.
{์ˆซ์ž}๋Š” ์•ž์˜ ๋ฌธ์ž๊ฐ€ ๊ทธ ์ˆซ์ž๋งŒํผ ์žˆ๋‹ค๋Š” ๋œป์ด๋‹ค. so{3}๋Š” sooo๋งŒ์„ ์„ ํƒํ•œ๋‹ค.
{์ˆซ์ž1, ์ˆซ์ž2}๋Š” ์•ž์˜ ๋ฌธ์ž๊ฐ€ ์ˆซ์ž1๊ฐœ ์ด์ƒ ์ˆซ์ž2๊ฐœ ์ดํ•˜๋งŒํผ ์žˆ๋‹ค๋Š” ๋œป์ด๋‹ค. so{2,4}๋Š” soo, sooo, soooo๋ฅผ ์„ ํƒํ•œ๋‹ค. ์ฐธ๊ณ ๋กœ ์ˆซ์ž1๊ณผ ์ˆซ์ž2์ค‘์— ํ•˜๋‚˜๋Š” ์ƒ๏ฟฝ๏ฟฝ๏ฟฝํ•  ์ˆ˜ ์žˆ๋‹ค. {4,}์€ 4๊ฐœ ์ด์ƒ์ธ ๋ชจ๋“  ๊ฒƒ์„ {,3}์€ 3๊ฐœ ์ดํ•˜์ธ ๋ชจ๋“  ๊ฒƒ์„ ์„ ํƒํ•œ๋‹ค. {1,}์€ +์™€ ๊ฐ™๊ณ  {0,}์€ *์™€ ๊ฐ™์œผ๋ฉฐ {0, 1}์€ ?๊ณผ ๊ฐ™๋‹ค.
0 notes
neo-beyond-blog ยท 6 years ago
Text
ํŒŒ์ผ ์ฒ˜๋ฆฌ
ํŒŒ์ผ ํŠน์ง‘
os ๋ชจ๋“ˆ
sys
file.open()
0 notes
neo-beyond-blog ยท 6 years ago
Text
์“ฐ๋ž˜๋”ฉ
โ˜† import threading์€ ๋™์‹œ์— ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰ํ•  ๋•Œ ์“ด๋‹ค. ๊ฐ€๋ น ๋ฉ”์‹œ์ง€ ์ˆ˜์‹  ์ค‘์— ์†ก์‹ ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค.
<์‚ฌ์šฉ๋ฒ•>
todo = threading.Thread(target=ํ•จ์ˆ˜๋ช…)
todo.start() //์“ฐ๋ž˜๋“œ ์‹คํ–‰
์—ฌ๋Ÿฌ ๊ฐœ์˜ ์“ฐ๋ž˜๋“œ๋ฅผ ๋™์‹œ์— ์‹คํ–‰์‹œํ‚ค๋ ค๋ฉด
task = []
for i in range(5):
todo= threading.Thread(target=ํ•จ์ˆ˜๋ช…)
task.append(todo)
for t in task:
t.start()
<์“ฐ๋ž˜๋“œ๋กœ ์‹คํ–‰์‹œํ‚ค๋Š” ํ•จ์ˆ˜์— ์ธ์ž๊ฐ’ ์ „๋‹ฌ>
์ธ์ž๋Š” threading.Thread(target=ํ•จ์ˆ˜๋ช…, args=(์ธ์ž1, ...)) ํŠœํ”Œ ํ˜•ํƒœ๋กœ ์จ์•ผํ•œ๋‹ค.
๋”•์…”๋„ˆ๋ฆฌ๋Š” kwargs={} ๋„ ์“ฐ์ด๋Š”๋ฐ ๊ณต๋ถ€ ๋ฐ”๋žŒ.
< ์“ฐ๋ž˜๋“œ์™€ ๋ฉ”์ธ ์ฝ”๋“œ์˜ ๋ถ„๋ฆฌ >
์ด๋ ‡๊ฒŒ ์“ฐ๋ž˜๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ์“ฐ๋ž˜๋“œ ๋ผ๋ฆฌ ๋ฟ ์•„๋‹ˆ๋ผ Main ์Šคํฌ๋ฆฝํŠธ๋ž‘๋„ ์ „๋ถ€ ๋ณ‘๋ ฌ๋กœ ์ˆ˜ํ–‰ํ•œ๋‹ค. ์–ด๋–ค ์“ฐ๋ž˜๋“œ๊ฐ€ ๋๋‚œ ํ›„์— ๋ฉ”์ธ ์Šคํฌ๋ฆฝํŠธ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋ ค๋ฉด ๋ชจ๋“  ์“ฐ๋ž˜๋“œ๋ฅผ ์“ฐ๋ž˜๋“œ๋ช….join() ํ•ด์ฃผ๋ฉด๋œ๋‹ค. ์œ„ ์ฝ”๋“œ์˜ ๋งˆ์ง€๋ง‰ ์ค„์— ์ด๊ฑธ ๋„ฃ์œผ๋ฉด ๋œ๋‹ค.
for t in task:
t.join() // ๋ชจ๋“  ์“ฐ๋ž˜๋“œ๋ฅผ ๋๋‚  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฌ๊ฒŒ ํ•œ๋‹ค.
print("End")
โ˜† import time์€ thread๋ž‘ ์ž์ฃผ ์“ฐ์ด๋Š” ๋ชจ๋“ˆ์ด๋‹ค.
๊ฐ„๋‹จํ•˜๊ฒŒ time.sleep(1)์€ 1์ดˆ๋™์•ˆ ํ•จ์ˆ˜๋ฅผ ์ผ์‹œ์ค‘์ง€ํ•œ๋‹ค.
def ํ•จ์ˆ˜๋ช…
์†Œ์Šค์ฝ”๋“œ1
time.sleep(1) //์Šคํฌ๋ฆฝํฌ๋ฅผ 1์ดˆ๋ฅผ ์ผ์‹œ์ค‘์ง€
0 notes
neo-beyond-blog ยท 6 years ago
Text
ํŒŒ์ด์ฌ ์‹œ๊ฐ„, ๋‚ ์งœ
time
calendar
โ˜† import datetime์€ ํ˜„์žฌ ์‹œ๊ฐ„์„ ์›ํ•˜๋Š” ํŠน์ • ํ˜•ํƒœ๋กœ ํฌ๋งทํ•  ์ˆ˜ ์žˆ๋‹ค.
๋ณ€์ˆ˜ n์— โ™ก ๊ฐ์ฒด๋ฅผ ์ €์žฅํ•œ๋‹ค.
n = datetime.datetime.now()
---> "2019-08-04 14:29:44.103824"
๊ทธ๋Ÿผ ์ž ์–ด๋–ป๊ฒŒ ํฌ๋งทํ•˜๋‚˜? string formatted time ๋œป์˜ strftime() ๋งค์†Œ๋“œ๋ฅผ ์ด์šฉํ•˜๋Š” ๊ฒƒ์ด๋‹ค. strftime ๋งค์†Œ๋“œ๋Š” ๋‹ค์Œ ๊ธฐํ˜ธ๋“ค์„ ์‚ฌ์šฉํ•ด์„œ ์‹œ๊ฐ„์„ ํฌ๋งคํŒ…ํ•œ๋‹ค.
%Y 4์ž๋ฆฌ ์—ฐ๋„ %m 2์ž๋ฆฌ ๋‹ฌ %d 2์ž๋ฆฌ ์ผ
%H 2์ž๋ฆฌ ์‹œ %M 2์ž๋ฆฌ ๋ถ„ %S 2์ž๋ฆฌ ์ดˆ
%A ์˜์–ด ์š”์ผ %B ์˜์–ด ๋‹ฌ
formatted = n.strftime("%Y--%m--%d")
---> "2019--08--04"
0 notes
neo-beyond-blog ยท 6 years ago
Text
Day 2 ํŒŒ์ด์ฌ ๊ธฐ๋ณธ๊ธฐ
โ˜† open(ํŒŒ์ผ๋ช… , ๋ชจ๋“œ) // ํŒŒ์ผ
ํŒŒ์ด์ฌ์—์„œ ํŒŒ์ผ ์ฝ๊ณ  ์“ฐ๊ธฐ๋Š” ์ž์ฃผ ์‚ฌ์šฉ๋˜์–ด ์ž˜ ์•Œ์•„๋‘ฌ์•ผ ํ•œ๋‹ค.
txt ์ฝ๊ณ ์“ฐ๋Š” ๋ฒ• ์ฐธ์กฐ:ย https://wikidocs.net/26
ํŒŒ์ผ ์“ฐ๋Š” ๊ฒฝ๋กœ๋ฅผ ์„ค์ • ๊ฐ€๋Šฅํ•˜๋‹ค. f = open(โ€C:\project\memo.txtโ€,ย โ€œwโ€)
<์“ฐ๊ธฐ>
f.write(โ€somethingโ€) ์€ ํŒŒ์ผ์— ํ•œ ์ค„์”ฉ ์“ด๋‹ค. f.write(โ€1โ€ณ)๋ฅผ 3๋ฒˆ ์‹คํ–‰ํ•˜๋ฉด ํŒŒ์ผ์€
1; 1; 1์ด ๋œ๋‹ค. (;๋Š” ์—”ํ„ฐ๋ฅผ ํŽธ์˜์ƒ ํ‘œ๊ธฐํ•œ ๊ฒƒ)
<์ฝ๊ธฐ>
f.read()๋Š” ํŒŒ์ผ์˜ ๋ชจ๋“  ๋ฌธ์ž์—ด์„ ์ฝ์–ด f์— ์ €์žฅํ•œ๋‹ค.
f.readline()์€ ํŒŒ์ผ์˜ ์œ„์—์„œ๋ถ€ํ„ฐ ํ•œ ์ค„์”ฉ ์ฝ๋Š”๋‹ค. f.readline()์„ ๋‘๋ฒˆ ํ•˜๋ฉด ๋‘๋ฒˆ์งธ์ค„์„ String ํ˜•ํƒœ๋กœ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ๋งˆ์ง€๋ง‰ ์ค„์„ ์ฝ๊ณ  ํ•œ๋ฒˆ ๋” ์‹คํ–‰ํ•ด ๋”์ด์ƒ ๋‚ด์šฉ์ด ์—†์œผ๋ฉด None์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค. if not f.readline() : break ์œผ๋กœ ๋งˆ์ง€๋ง‰ ์ค„์ผ ๊ฒฝ์šฐ ๋๋‚ผ ์ˆ˜ ์žˆ๋‹ค.
f.readlines()๋Š” ํŒŒ์ผ์˜ ๋ชจ๋“  ์ค„์„ List ํ˜•ํƒœ์—์„œ ํ•œ ์ค„๋‹น ํ•œ index๋กœ ๋„ฃ์–ด ๋ฐ˜ํ™˜ํ•œ๋‹ค
โ˜† ํ•จ์ˆ˜์—์„œ return์ด ์—†๋Š” ํ•จ์ˆ˜๋ฅผ ๋ณ€์ˆ˜์— ์ €์žฅํ•˜๋ฉด None ์ด๋‹ค.
def fun(): print(1)
a= fun() ; type(a) == None
โ˜† ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ ๋งค๊ฐœ๋ณ€์ˆ˜๋ณ„ ์ธ์ž ๊ฐ’์„ ์ˆœ์„œ์— ์ƒ๊ด€์—†์ด ์ง์ ‘ ์ค„ ์ˆ˜ ์žˆ๋‹ค. def fn(a,b):..
fn(b=1, a=2) == fn(a=2, b=1)
โ˜† ํ•จ์ˆ˜๋ฅผ ์ •์˜ํ•  ๋•Œ ๋งค๊ฐœ๋ณ€์ˆ˜์— ๋“ค์–ด๊ฐˆ ๊ธฐ๋ณธ ๊ฐ’์„ ๋ฏธ๋ฆฌ ์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. def fn(a, b=True):...
์ด๋Ÿฌ๋ฉด fn(2, b=False) ์ฒ˜๋Ÿผ b๋ฅผ ์ •ํ•ด์ฃผ์ง€ ์•Š๊ณ  fn(1)๊ฐ™์ด ํ˜ธ์ถœํ•  ๊ฒฝ์šฐ b๋Š” ํ•ญ์ƒ True๊ฐ€ ๋œ๋‹ค.
๋‹จ, ๊ธฐ๋ณธ๊ฐ’์„ ๋ฏธ๋ฆฌ ์ •ํ•ด์ฃผ๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ํ•ญ์ƒ ๋ฏธ์ • ๋งค๊ฐœ๋ณ€์ˆ˜๋ณด๋‹ค ๋’ค์— ์žˆ์–ด์•ผ ํ•œ๋‹ค.
โ˜† ์ž„์˜์˜ ๊ฐฏ์ˆ˜์˜ ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ๋ฐ›๋Š” ํ•จ์ˆ˜๋Š” def fn(*๋งค๊ฐœ๋ณ€์ˆ˜์ด๋ฆ„) ํ•˜๋ฉด๋œ๋‹ค. def fn(mode, *args): ์ฒ˜๋Ÿผ ์•ž์— ํ•„์ˆ˜ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์ง€์ •ํ•˜๊ณ  ๋’ค์—์„œ ๋ฌด์ž‘์œ„ ์ธ์ž๋ฅผ ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค. ์˜ˆ์‹œ) fn('add', 1,2,3,4)
โ˜† ์ž„์˜์˜ ๊ฐฏ์ˆ˜์˜ ๋”•์…”๋„ˆ๋ฆฌ(key: value) ์Œ์„ ๋ฐ›๋Š” ํ•จ์ˆ˜๋Š” fn(**๋งค๊ฐœ๋ณ€์ˆ˜์ด๋ฆ„) ํ•˜๋ฉด๋œ๋‹ค. ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ ์ „๋‹ฌ๋ฐ›์€ ์ธ์ž(ํ‚ค = ๊ฐ’) ์Œ์„ ๋งค๊ฐ€๋ณ€์ˆ˜์ด๋ฆ„์˜ ๋ณ€์ˆ˜์— ๋”•์…”๋„ˆ๋ฆฌ({'ํ‚ค' : ๊ฐ’})๋กœ ๋งŒ๋“ค์–ด ์ €์žฅํ•œ๋‹ค.
def fn(**kwargs): print(kwargs)
fn(a=1) ---> { 'a' : 1 } fn(a=1, b='hi') ---> { 'a' : 1, 'b' : 'hi' }
sys๋Š”
โ˜† ํŒŒ์ด์ฌ ์ธํ„ฐํ”„๋ฆฌํ„ฐ idle์—์„œ ๊ฒฝ๋กœ ํ‘œ๊ธฐ ์‹œ ํด๋”์— /๋˜๋Š” โ‚ฉโ‚ฉ๋กœ ์ ์–ด์•ผ ํ•œ๋‹ค.
โ˜† sys.argv ๋Š” ๋ช…๋ น ํ”„๋กฌํ”„ํŠธ์—์„œ ํŒŒ์ด์ฌ ํŒŒ์ผ์„ ์‹คํ–‰์‹œํ‚ฌ ๋•Œ ์ธ์ž๋ฅผ ํ•จ๊ป˜ ๋ฐ›์•„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค€๋‹ค.
import sys
print(sys.argv) ๋กœ ๋งŒ๋“ค์–ด ๋†“์œผ๋ฉด, ๋ช…๋ นํ”„๋กฌํ”„ํŠธ์—์„œ >>> ํŒŒ์ด์ฌํŒŒ์ผ๊ฒฝ๋กœ.py ์ธ์ž1 ์ธ์ž2 ์“ฐ๊ณ  ์—”ํ„ฐ ์‹œ sys.argv๋Š” ['ํŒŒ์ด์ฌํŒŒ์ผ๊ฒฝ๋กœ', '์ธ์ž1', '์ธ์ž2']๊ฐ€ ๋œ๋‹ค.
โ˜† sys.path๋Š” ํŒŒ์ด์ฌ ๋ชจ๋“ˆ์ด ์ €์žฅ๋˜์–ด ์žˆ๋Š” ๊ฒฝ๋กœ๋“ค์„ List๋กœ ๊ฐ€์ง„๋‹ค.
sys.path.append(๊ฒฝ๋กœ)ํ•˜๋ฉด ์ด ๊ฒฝ๋กœ์˜ ํŒŒ์ด์ฌ ๋ชจ๋“ˆ์„ ๋ถˆ๋Ÿฌ์˜ฌ ์ˆ˜ ์žˆ๋‹ค. ์ถ”ํ›„ ์‹คํ—˜ํ•„์š” โ™ก
โ˜† pickle ๋ชจ๋“ˆ์€ ์–ด๋–ค ์ž๋ฃŒํ˜•์ด๋“  ์ž๋ฃŒ๊ฐ€ ๋‹ด๊ฒจ์ง„ ๋ณ€์ˆ˜๋ฅผ ํŒŒ์ผ์— ๊ทธ๋Œ€๋กœ ์ €์žฅํ•˜๊ณ  ๋ถˆ๋Ÿฌ์˜ค๊ฒŒ ํ•œ๋‹ค.
<๋ณ€์ˆ˜ ์ €์žฅ>
import pickle
a={'1' : 3, '2' : 2}
f = open('save.txt', 'wb')
pickle.dump(a , f)
f.close()
์ด ๊ฒฐ๊ณผ๋Š” save.txt์— a ๋”•์…”๋„ˆ๋ฆฌ ๋ฐ์ดํ„ฐ๊ฐ€ ๊ทธ๋Œ€๋กœ ์ €์žฅ๋œ๋‹ค.
<๋ถˆ๋Ÿฌ์˜ค๊ธฐ>
with open('save.txt', 'rb') as f:
a = pickle.load(f)
a์— ์˜ˆ์ „์— ์ €์žฅํ•œ ๋”•์…”๋„ˆ๋ฆฌ๊ฐ€ ๋ถˆ๋Ÿฌ์™€์กŒ๋‹ค.
โ˜† shutil ๋ชจ๋“ˆ์€ ํŒŒ์ผ์„ ๋ณต์‚ฌํ•ด์ค€๋‹ค.
๋™์ผํ•œ ํŒŒ์ผ๋ช…์ผ ๊ฒฝ์šฐ ๋ณต์‚ฌํ•œ๋‹ค.
import shutil
shutil.copy(ํŒŒ์ผ๋ช….ํ™•์žฅ์ž, ํŒŒ์ผ๋ช…2.ํ™•์žฅ์ž) // ํŒŒ์ผ๋ช… 2๋กœ ๋ณต์‚ฌ
shutil.copy(ํŒŒ์ผ๋ช….ํ™•์žฅ์ž, ํด๋”๋ช…) // ํด๋”๋กœ ๋ณต์‚ฌ
์‹คํ—˜ํ•„์š”โ™ก
โ˜† glob.glob(๊ฒฝ๋กœ) ๋ชจ๋“ˆ์€ ํŠน์ • ํด๋”์— ์žˆ๋Š” ๋ชจ๋“  ํŒŒ์ผ๋ช…์„ ๋ฆฌ์ŠคํŠธ์— ์ €์žฅํ•œ๋‹ค. * ๊ณผ ? ๋ฅผ ์จ์„œ ํ•„ํ„ฐ๋ฅผ ๋„ฃ์–ด์ค„ ์ˆ˜ ์žˆ๋‹ค.
import glob
a = glob.glob("C:โ‚ฉโ‚ฉdataโ‚ฉโ‚ฉaa*")
---> ["c:โ‚ฉโ‚ฉdataโ‚ฉโ‚ฉaa1.txt", "c:โ‚ฉโ‚ฉdataโ‚ฉโ‚ฉaa2.txt"]
โ˜† tempfile ๋ชจ๋“ˆ์€ ์ž„์‹œ ํŒŒ์ผ์„ ๋‹ค๋ฃจ๋Š”๋ฐ
<ํŒŒ์ผ๋ช… ์ƒ์„ฑ>
a = tempfile.mktemp() ๋Š”์ค‘๋ณต๋˜์ง€ ์•Š๋Š” ์ž„์‹œ ํŒŒ์ผ๋ช… ๊ฒฝ๋กœ string์„ ์ƒ์„ฑํ•œ๋‹ค.
<์ž„์‹œ ์ €์žฅ ๊ณต๊ฐ„ ์ƒ์„ฑ>
f = tempfile.TemporartFile()
... f.close() //์ข…๋ฃŒ์‹œ ์ถ”๊ฐ€๊ณต๋ถ€ํ•„์š”โ™ก
import random ๋ชจ๋“ˆ์€ ๋‚œ์ˆ˜๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.
โ˜† random.random() ์€ 0~1.0 ์‚ฌ์ด์˜ ๋‚œ์ˆ˜๊ฐ’์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
โ˜† random.randint(์ •์ˆ˜1, ์ •์ˆ˜2)๋Š” ์ •์ˆ˜ 1, 2 ์‚ฌ์ด์˜ ํ•œ ์ •์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•œ๊ฐ€. ์ •์ˆ˜1๋„ ๋‚˜์˜ค๋Š”์ง€ ํ™•์ธํ•„์š”โ™ก
โ˜† random.choice(๋ฆฌ์ŠคํŠธ) ํ•จ์ˆ˜๋Š” ๋ฆฌ์ŠคํŠธ์—์„œ ์•„๋ฌด ์š”์†Œ๋‚˜ ์„ ํƒํ•ด์„œ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
โ˜† random.shuffle(๋ฆฌ์ŠคํŠธ) ํ•จ์ˆ˜๋Š” ๋ฆฌ์ŠคํŠธ์˜ ์š”์†Œ๋ฅผ ๋ฌด์ž‘์œ„๋กœ ์„ž์–ด ๋ฒ„๋ฆฐ๋‹ค. (๋ฐ˜ํ™˜ ์•ˆํ•จ)
import webbrowser ๋ชจ๋“ˆ์€ ๊ธฐ๋ณธ์œผ๋กœ ์ง€์ •๋œ ์›น ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ์กฐ์ž‘ํ•˜๊ฒŒ ํ•ด์ค€๋‹ค.
โ˜† webbrowser.open(์‚ฌ์ดํŠธ ์ฃผ์†Œ) ๋Š” ์›น ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์—ด๋ ค ์žˆ์œผ๋ฉด ์ด ์ฃผ์†Œ๋กœ ์ด๋™ํ•˜๊ณ , ๊บผ์ ธ ์žˆ์œผ๋ฉด ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์‹คํ–‰ํ•œ ๋’ค ์ด ์ฃผ์†Œ๋ฅผ ์—ฐ๋‹ค.
โ˜†webbrowser.open_new(์‚ฌ์ดํŠธ ์ฃผ์†Œ) ๋Š” ์›น ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์—ด๋ ค ์žˆ๋”๋ผ๋„ ์ƒˆ๋กœ์šด ์ฐฝ์œผ๋กœ ์ด ์ฃผ์†Œ๋ฅผ ์—ฐ๋‹ค.
0 notes
neo-beyond-blog ยท 6 years ago
Text
Day 1 ํŒŒ์ด์ฌ ๊ธฐ๋ณธ๊ธฐ
ํŒŒ์ด์ฌ ๋‚ด์žฅ ํ•จ์ˆ˜๋ฅผ idle์—์„œ ํ•œ๋ฒˆ์”ฉ ์‚ฌ์šฉํ•ด๋ณด์•˜๋‹ค.
(ํŒŒ์ด์ฌ ๋‚ด์žฅ ํ•จ์ˆ˜ย https://wikidocs.net/32ย ์ฐธ์กฐ)
์œ ์šฉํ•˜๊ฒŒ ์“ธ ์ผ์ด ์žˆ์–ด ์ด๊ฒƒ๋“ค์€ ์•Œ์•„๋‘ฌ์•ผํ•œ๋‹ค.
โ˜… eval(โ€™ํ‘œํ˜„โ€™)
๋ฌธ์ž๋กœ ๋œ ํ•จ์ˆ˜๋ฅผ ๋™์ ์œผ๋กœ ์‹คํ–‰์‹œ์ผœ์ฃผ๋Š” ์‹ ๊ธฐํ•œ ๊ธฐ๋Šฅ.
a =ย โ€˜print(โ€™
b=ย โ€˜5)โ€™
eval(a + b)ย  ์‹คํ–‰ํ•˜๋ฉด print(5) ๊ฐ€ ์‹คํ–‰๋œ๋‹ค.
๏ฟฝ๏ฟฝ enumerate([๋ฆฌ์ŠคํŠธ])
๋ฆฌ์ŠคํŠธ์˜ ๊ฐ ๋ฐ์ดํ„ฐ์— ์ธ๋ฑ์Šค๋ฅผ ๋ถ€์—ฌํ•œ ํŠœํ”Œ์ด ๋‚˜์˜จ๋‹ค.
for i in enumerate([โ€™aโ€™, โ€™bโ€™, โ€™cโ€™]): print(i) ์˜ ๊ฒฐ๊ณผ๋Š”
(0, โ€™aโ€™); (1, โ€™bโ€™); (2,ย โ€˜cโ€™) ์ด๋‹ค.
โ˜… lambda x: x์‹
lambda๋Š” x๋ฅผ ์ธ์ž๋กœ ๋ฐ›๋Š” ์ต๋ช… ํ•จ์ˆ˜์ด๊ณ , x ์‹์„ ์‹คํ–‰ํ•œ๋‹ค.
x ์‹์ด boolen์ด๋ฉด true, false๋ฅผ, ์‹์ด๋ฉด ์‹์„ ์ˆ˜ํ–‰ํ•œ ๊ฐ’์„ returnํ•œ๋‹ค.
ํ•จ์ˆ˜๋ฅผ ๋ณ€์ˆ˜์— ์ €์žฅํ•  ์ˆ˜ ์žˆ๋‹ค. a = lambda x: x>0;ย  a(5) ---> true
์ธ์ž๋ฅผ ์—ฌ๋Ÿฌ๊ฐœ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค. lambda x,y,z: x+y+z
โ˜… filter(ํ•จ์ˆ˜๋ช…, ์—ฌ๋Ÿฌ๊ฐ’์„ ์ˆœ์ฐจ์  ๋Œ€์ž… ๊ฐ€๋Šฅํ•œ iterable ์ž๋ฃŒํ˜•)
x๊ฐ€ ์ฐธ์ด๋ฉด true๋ฅผ return ํ•˜๋Š” ํ•จ์ˆ˜ pos๊ฐ€ ์žˆ๋‹ค.
def pos(x):ย 
ย  return x>0
๋ฆฌ์ŠคํŠธ lst = [1, 3, 5, -5, -20] ์—์„œ pos ํ•จ์ˆ˜ ๊ฐ’์ด ์ฐธ์ธ ๊ฒƒ๋งŒ ๋ฝ‘๊ณ  ์‹ถ๋‹ค.
์ด ๋•Œ filter ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
filter(pos, lst) ๋Š” lst ์ค‘ pos์— true ๋ฆฌํ„ด์ธ๊ฒƒ๋งŒ ๋ฝ‘์€ filter ๊ฐ์ฒด๋ฅผ ๋ฐ˜ํ™˜ํ•˜์—ฌ list๋กœ ๋งŒ๋“ค์–ด์ค˜์•ผ ํ•œ๋‹ค.
์‚ฌ์šฉ :ย  list(filter(pos,lst))
ํ•จ์ˆ˜๋ฅผ lambda๋กœ ์‚ฌ์šฉ:ย  filter(lambda x: x>0, [1,4,-4])
โ˜…ย  id(๊ฐ์ฒด)
id๋Š” ๊ฐ์ฒด๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ๊ณ ์œ  ์ฃผ์†Œ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
pointer๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” ๊ฒƒ๊นŒ์ง€ ๋ชจ๋‘ ๊ฐ™์€ ์ฃผ์†Œ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
๊ฐ€๋ น, a=5; b=a ์ผ ๊ฒฝ์šฐ id(a) == id(5) == id(b) ๊ฐ€ ๊ฐ™์€ ๊ฐ’์œผ๋กœ ์„ฑ๋ฆฝ๋œ๋‹ค.
โ˜…ย  int(์ˆซ์ž ๊ฐ’(๋ฌธ์žํ˜•ํฌํ•จ), [์›๋ž˜ ์ง„์ˆ˜])ย 
int์˜ 2๋ฒˆ์งธ ์ธ์ž์— ์ง„์ˆ˜๊ฐ’์„ ์ž…๋ ฅํ•˜๋ฉด ์ฒซ๋ฒˆ์งธ ์ธ์ž๋ฅผ ๊ทธ ์ง„์ˆ˜์ธ ์ˆซ์ž๋กœ ์น˜๊ณ , 10์ง„์ˆ˜๋กœ ๋ฐ”๊ฟ”์ค€๋‹ค. ๋‹จ, ์ฒซ๋ฒˆ์งธ ์ธ์ž๊ฐ€ ๋ฌธ์žํ˜•์œผ๋กœ ์ ํ˜€์•ผํ•œ๋‹ค.
int(โ€™1011โ€ฒ, 2) ๋Š” โ€˜1011โ€ฒ์„ 2์ง„์ˆ˜๋กœ ๋ณด๊ณ , 10์ง„์ˆ˜๋กœ ๋ณ€ํ™˜ํ•ด 11์„ ๋‚ธ๋‹ค.
โ˜… isinstance(something, ํด๋ž˜์Šค)
isinstance๋Š” something์ด ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค๋ฉด True, ์•„๋‹ˆ๋ฉด False๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
class big: ......
a= big()
isinstance(a, big)ย  ย ---> True
โ˜…ย  listํ•จ์ˆ˜๋ฅผ ๋ฌธ์ž์—ด์— ์‚ฌ์šฉํ•  ์‹œ list(โ€™helloโ€™) ---> [โ€™hโ€™,โ€™eโ€™,โ€™lโ€™,โ€™lโ€™,โ€™oโ€™]
โ˜… map(ํ•จ์ˆ˜, iterable ๋ฐ์ดํ„ฐ)
map ์€ iterable ๋ฐ์ดํ„ฐ์˜ ๊ฐ ์š”์†Œ๋งˆ๋‹ค ํ•จ์ˆ˜๋ฅผ ์ ์šฉํ•œ ๊ฒฐ๊ณผ๊ฐ’์œผ๋กœ ๋งŒ๋“ค์–ด์ค€๋‹ค.
map(lambda x: x*2, [1,2,3,4]) ---> map object --> listํ™”ํ•˜๋ฉด [2,4,6,8]
โ˜… max() ํ•จ์ˆ˜๋Š” ๋ฌธ์ž์—ด๋„ ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค. a-z์ˆœ์œผ๋กœ z๊ฐ€ ๊ฐ€์žฅ ๋†’์€ ๊ฐ’์œผ๋กœ ๋ฐ˜ํ™˜ min์€ ๊ทธ ๋ฐ˜๋Œ€๋‹ค.
โ˜…ย  range(์‹œ์ž‘์ˆซ์ž, ๋์ˆซ์ž, ์ˆซ์ž๊ฐ„ ์ฐจ์ด)
range object๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. ๋ฆฌ์ŠคํŠธ๋กœ ๋งŒ๋“œ๋ ค๋ฉด list(range(5))
์Œ์ˆ˜ list๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. range(0, -10, -1) ์ˆซ์ž๊ฐ„ ์ฐจ์ด๋ฅผ ์Œ์ˆ˜๊ฐ’์œผ๋กœ ํ•˜๊ณ , ๋์ˆ˜๋ฅผ ์Œ์ˆ˜๋กœ ํ•˜๋ฉด ๋œ๋‹ค. ์Œ์ˆ˜๋„ ์—ญ์‹œ ๋์ˆ˜๋ฅผ ํฌํ•จ์•ˆํ•˜๊ณ  0๋ถ€ํ„ฐ -9๊นŒ์ง€ ๋งŒ๋“ค์–ด์ง„๋‹ค.ย 
โ˜… sorted([๋ฆฌ์ŠคํŠธ]) ์™€ ๋ฆฌ์ŠคํŠธobj.sort()์˜ ์ฐจ์ด์ . sorted๋Š” ๋ฆฌ์ŠคํŠธ๋ฅผ ์ •๋ ฌํ•˜์—ฌ returnํ•˜๊ณ , sort() ํ•จ์ˆ˜๋Š” ์ •๋ ฌ๋งŒ ํ•˜๊ณ  return์„ ํ•˜์ง€ ์•Š๋Š”๋‹ค.
โ˜… sorted(๋ฌธ์ž์—ด), list(๋ฌธ์ž์—ด), tuple(๋ฌธ์ž์—ด) ๋ชจ๋‘ ๊ฐ ๋ฌธ์ž์—ด์„ ๋ฆฌ์ŠคํŠธ๋กœ ์ชผ๊ฐ ๋‹ค.
list(โ€™binโ€™) == [โ€™bโ€™,โ€™iโ€™,โ€™nโ€™]
โ˜… zip(iterable-object1, iterable-object2...)๋Š” ๊ฐ iterable obj์˜ ๊ฐ™์€ ์ธ๋ฑ์Šค ์ˆœ๋ฒˆ๋ผ๋ฆฌ ํŠœํ”Œ๋กœ ์ง์ฐŒ์–ด์ค€๋‹ค.
zip([1,2,3],[โ€™aโ€™,โ€™bโ€™,โ€™cโ€™]) ๋Š” zip obj๋ฅผ ๋งŒ๋“ค๊ณ  ์ด๋ฅผ list()ํ™” ํ•˜๋ฉด [(1,โ€™aโ€™), (2,โ€™bโ€™), (3,โ€™cโ€™)]์ด๋‹ค.
๋‘ ๋ฆฌ์ŠคํŠธ ๊ฐ„ ์š”์†Œ ๊ฐฏ์ˆ˜๊ฐ€ ๋‹ค๋ฅธ ๊ฒฝ์šฐ, ์•ž๋’ค ์ƒ๊ด€์—†์ด ์ ์€ ์ธ๋ฑ์ˆ˜ ๊ฐฏ์ˆ˜์— ๋งž์ถ˜๋‹ค. ๊ฐ€๋ น, [1,2]์™€ [โ€™aโ€™,ย โ€˜bโ€™,ย โ€˜cโ€™]๋ฅผ list(zip) ํ•˜๋ฉด [(1,โ€™aโ€™), (2, โ€ฒbโ€™)]๊นŒ์ง€๋งŒ ์ƒ์„ฑํ•œ๋‹ค.
โ˜… open(ํŒŒ์ผ๋ช…,[๋ชจ๋“œ])๋Š” ํŒŒ์ผ ๊ฐ์ฒด๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ๋ชจ๋“œ๋Š” r(์ฝ๊ธฐ), w(์“ฐ๊ธฐ), a(์ถ”๊ฐ€), x(์ƒˆํŒŒ์ผ์“ฐ๊ธฐ)๊ฐ€ ์žˆ๊ณ  ๋ชจ๋“œ ์ ‘๋ฏธ์‚ฌ๋กœ b(๋ฐ”์ด๋„ˆ๋ฆฌ)๊ฐ€ ์žˆ์œผ๋ฉฐ ๋ชจ๋“œ๋ฅผ ์ƒ๋žตํ•˜๋ฉด ๊ธฐ๋ณธ์ ์œผ๋กœ ์ฝ๊ธฐ ๋ชจ๋“œ๋ฅผ ์„ ํƒํ•œ๋‹ค.
ํ•ด๋‹น ํŒŒ์ผ์ด ์—†๋Š”๋ฐ ์ฝ๊ธฐ ๋ชจ๋“œ๋กœ ์—ด๋ฉด ์ฐพ์„ ์ˆ˜ ์—†๋‹ค๋Š” ์—๋Ÿฌ๊ฐ€ ๋‚œ๋‹ค.
์ƒˆํŒŒ์ผ์“ฐ๊ธฐ์ธ๋ฐ ๊ธฐ์กด์— ๊ทธ ํŒŒ์ผ๋ช…์ด ์กด์žฌํ•˜๋ฉด ์—๋Ÿฌ๊ฐ€ ๋‚œ๋‹ค.
rb๋ชจ๋“œ๋Š” ๋ฐ”์ดํŠธ๋กœ ์ฝ์–ด๋“ค์ด๊ณ  wb๋ชจ๋“œ๋Š” raw ๋ฐ์ดํ„ฐ๋กœ ์“ด๋‹ค.
0 notes
neo-beyond-blog ยท 6 years ago
Text
My Codability Upgrade ๋ธ”๋กœ๊น… ์‹œ์ž‘(Project-beyond-neo)
์ฝ”๋”ฉ ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ํ•œ ๋‹ฌ๋™์•ˆ ์Šค์Šค๋กœ ํ•˜๊ธฐ ์œ„ํ•ด ๋ธ”๋กœ๊ทธ๋ฅผ ์‹œ์ž‘ํ•œ๋‹ค.
ํœด๊ฐ€ ๋นผ๊ณ , ๋งค์ผ ์ด ๋ธ”๋กœ๊ทธ์— ๊ทธ๋‚  ๋ฐฐ์šด ๊ฒƒ์„ ์ž‘์„ฑํ•  ๊ฒƒ์ด๋‹ค.
ํ˜„์žฌ ๋‚˜๋Š”...
- ํŒŒ์ด์ฌ์˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋‚˜ ์™ธ๋ถ€ API๋ฅผ ํ™œ์šฉํ•˜์ง€๋งŒ, ์•”๊ธฐํ•˜๊ณ  ์žˆ์ง€ ์•Š์•„ ํ•„์š”ํ•  ๋•Œ ์‚ฌ์šฉ๋ฒ•์„ ์ฐธ์กฐํ•ด์„œ ์ด์šฉํ•œ๋‹ค.
- ํŒŒ์ด์ฌ์„ ํ™œ์šฉํ•˜์—ฌ ํŠน์ •ํ•œ ๊ฒฐ๊ณผ๋ฌผ(ํ™ˆํŽ˜์ด์ง€ ๋“ฑ)์„ ๋งŒ๋“ค์–ด๋‚ด๋Š” ๋‚˜๋งŒ์˜ ํ™•๋ฆฝ๋œ ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ตฌ์ถ•ํ•˜์ง€ ์•Š์•˜๋‹ค.
๋ชฉํ‘œ๋Š” : โ€˜ํŒŒ์ด์ฌ with ์›น Front-endโ€™ ์ง€์‹์„ ์ˆ™๋‹ฌํ•˜์—ฌ ์›น์„œ๋น„์Šค๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.
<์–ธ์–ด>
- ํŒŒ์ด์ฌ ๊ธฐ๋ณธ ๋‚ด์žฅ ํ•จ์ˆ˜ ์•”๊ธฐ์‚ฌ์šฉ(math, request, random, file...)
- ํŒŒ์ด์ฌ ์ฃผ์š” ์™ธ๋ถ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ˆ™๋‹ฌ(beautifulsoup4..)
- ํŒŒ์ด์ฌ ์ค‘๊ธ‰์ด์ƒ ๊ธฐ์ˆ  ๋Šฅ์ˆ™(์ •๊ทœํ‘œํ˜„์‹..)
- Flask ๊ธฐ๋ณธ ๊ฐœ๋… ์ดํ•ด ๋ฐ ์ฃผ์š”๊ธฐ๋Šฅํ•จ์ˆ˜ ์•”๊ธฐ์‚ฌ์šฉ
- Jquery ๊ธฐ๋ณธ ์„ ํƒ๋ฒ• ๋ฐ ๋ฉ”์†Œ๋“œ ๋Šฅ์ˆ™
<์›น์„œ๋น„์Šค>
- Flask๊ธฐ๋ฐ˜ ์›น์„œ๋น„์Šค๋ฅผ ์›น์‚ฌ์ดํŠธ์— ์—…๋กœ๋“œ
- ์ž๋™์œผ๋กœ ๋Œ์•„๊ฐ€๋Š” Python script๋กœ ์›น์„œ๋น„์Šค ์ž๋™ ์—…๋ฐ์ดํŠธ
- ์›น ์„œ๋น„์Šค์—์„œ ์œ ์ €์˜ input์„ ๋ฐ›์•„ output์„ ํŒŒ์ผ ๋‹ค์šด๋กœ๋“œ๋กœ ์ œ๊ณต
- Output์„ ํŽ˜์ด์Šค๋ถ ๋“ฑ SNS ๊ณต์œ  ๊ธฐ๋Šฅ
- ์œ ์ €์˜ input ์ •๋ณด๋ฅผ databaseํ™” ํ•˜์—ฌ Flask ์„œ๋ฒ„์— ์ €์žฅ(๋ฐฉ๋ช…๋ก, ๊ฐœ์ธ์ •๋ณด)
<ํ”„๋กœ์ ํŠธ>
- ์™ธ๋ถ€์—์„œ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•œ Flask ๊ธฐ๋ฐ˜ ์›น์„œ๋น„์Šค ๋งŒ๋“ค์–ด ๊ณต๊ฐœ
1 note ยท View note