๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
  • Tried. Failed. Logged.
728x90

๐Ÿ‘จ๐Ÿผ‍๐Ÿ’ป๊ฐœ๋ฐœ/ํŒŒ์ด์ฌ35

ํŒŒ์ด์ฌ - ์ฝ”๋“œ ๋‚œ๋…ํ™” ๋ณ€ํ™˜ ์‚ฌ์ดํŠธ(pyob.oxyry.com) https://pyob.oxyry.com/ Oxyry Python Obfuscator - The most reliable python obfuscator in the world Features Rename symbol names, includes variables, functions, classes, arguments, class private methods. The name replacer avoids a 1:1 mapping of cleartext names to obfuscated names, the same name may be converted to several different names within differen pyob.oxyry.com 2023. 3. 16.
ํŒŒ์ด์ฌ - ์บก์ฑ  ์ƒ์„ฑ๊ธฐ(captcha) ๋ชจ๋“ˆ ์„ค์น˜ pip install captcha ๊ธ€์ž ์ƒ์„ฑ ์˜ˆ์‹œ # Import the following modules from captcha.image import ImageCaptcha # Create an image instance of the given size image = ImageCaptcha(width = 280, height = 90) # Image captcha text captcha_text = 'GeeksforGeeks' # generate the image of the given text data = image.generate(captcha_text) # write the image on the given file and save it image.write(captcha_text, .. 2023. 3. 12.
ํŒŒ์ด์ฌ - pyinstaller์˜ RecursionError : maximum recursion depth exceeded ์˜ค๋ฅ˜ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• pyinstaller -w --onefile main.py ์ด๋Ÿฐ ์˜ˆ์‹œ๋กœ main.py๋ฅผ exe๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ณผ์ •์— RecursionError ์˜ค๋ฅ˜๊ฐ€ ์ƒ๊ฒผ๋‹ค๋ฉด .spec ํŒŒ์ผ์„ ์•„๋ž˜์ฒ˜๋Ÿผ ์ˆ˜์ • pyinstaller๋กœ ๋นŒ๋“œ๋ฅผ ํ•œ๋ฒˆ ํ•ด์ฃผ๋ฉด ๊ทธ ํด๋”์— main.spec์ด๋ผ๋Š” ํŒŒ์ผ์ด ํ•˜๋‚˜ ์ƒ๊ธฐ๋Š”๋ฐ ์ด๊ฑธ ์—ฐ๋‹ค. ์ƒ์œ„ ๋ถ€๋ถ„์—๋‹ค. (์ธ์ฝ”๋”ฉ ๋ฐ”๋กœ ์•„๋ž˜์—) # -*- mode: python ; coding: utf-8 -*- import sys sys.setrecursionlimit(5000) # ํ˜น์€ import sys ; sys.setrecursionlimit(sys.getrecursionlimit() * 5) ๋‘ ์ค„์„ ์ƒˆ๋กœ ์ถ”๊ฐ€ํ•œ๋‹ค. (sys.setrecursionlimit ํ•จ์ˆ˜๋Š” ์žฌ๊ท€ ํ˜ธ์ถœ์˜ ์ œํ•œ ์„ค์ •์ด๋ผ๊ณ  ํ•œ๋‹ค. ๊ธฐ.. 2023. 3. 8.
ํŒŒ์ด์ฌ - ์„ธ์…˜ ๋งŒ๋ฃŒ ์‹œ๊ฐ„ ๊ฒ€์ฆํ•˜๊ธฐ from datetime import timedelta, datetime session_lifetime = timedelta(seconds=10) # ์„ธ์…˜ ์œ ์ง€ ์‹œ๊ฐ„ expired_time = datetime.now() + session_lifetime if expired_time < datetime.now(): print("์„ธ์…˜ ์‚ฌ์šฉ ๊ธฐ๊ฐ„์ด ๋งŒ๋ฃŒ๋จ.") 2023. 2. 3.
ํŒŒ์ด์ฌ - ํ—ˆ์šฉ๋œ ๋ฌธ์ž, ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋น„๋ฐ€๋ฒˆํ˜ธ ๋ฌธ์ž๋“ค์ธ์ง€ ๊ฒ€์ฆํ•˜๊ธฐ (re) ์˜๋ฌธ, ์ˆซ์ž, ํŠน์ˆ˜ ๋ฌธ์ž๋“ค๋กœ ๊ตฌ์„ฑ๋œ ๋น„๋ฐ€๋ฒˆํ˜ธ์ธ์ง€ ํ™•์ธํ•˜๊ธฐ import re password = raw_input("Enter string to test: ") if re.fullmatch(r'[A-Za-z0-9!@#$%^&+=]{8,}', password): # match else: # no match ์ถœ์ฒ˜: https://stackoverflow.com/questions/2990654/how-to-test-a-regex-password-in-python How to test a regex password in Python? Using a regex in Python, how can I verify that a user's password is: At least 8 characters Must be re.. 2023. 2. 3.
ํŒŒ์ด์ฌ - ์Šฌ๋ผ์ด์Šค(Slice) ์Šฌ๋ผ์ด์Šค(Slice) ์Šฌ๋ผ์ด์Šค๋Š” ๋ฌธ์ž์—ด์ด๋‚˜ ๋ฆฌ์ŠคํŠธ์™€ ๊ฐ™์€ ์ˆœ์ฐจํ˜• ๊ฐ์ฒด์—์„œ ์ผ๋ถ€๋ฅผ ์ž˜๋ผ(Slicing) ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค. ํ˜•์‹ ๊ฐ์ฒด๋ช…[์ดˆ๊ธฐ์œ„์น˜:์ตœ์ข…์œ„์น˜] # '์ดˆ๊ธฐ์œ„์น˜'์—์„œ '์ตœ์ข…์œ„์น˜'-1๊นŒ์ง€์˜ ์š”์†Œ๋“ค์„ ๊ฐ€์ ธ์˜จ๋‹ค. ๊ฐ์ฒด๋ช…[์ดˆ๊ธฐ์œ„์น˜:์ตœ์ข…์œ„์น˜:์ฆ๊ฐ€๊ฐ’] # '์ดˆ๊ธฐ์œ„์น˜'์—์„œ '์ตœ์ข…์œ„์น˜'-1๊นŒ์ง€์˜ '์ฆ๊ฐ€๊ฐ’'๋งŒํผ ์ฆ๊ฐ€ํ•˜๋ฉด์„œ ํ•ด๋‹น ์œ„์น˜์˜ ์š”์†Œ๋“ค์„ ๊ฐ€์ ธ์˜จ๋‹ค. ์Šฌ๋ผ์ด์Šค๋Š” ์ผ๋ถ€ ์ธ์ˆ˜๋ฅผ ์ƒ๋žตํ•˜์—ฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ์ฒด๋ช…[:] ๋˜๋Š” ๊ฐ์ฒด๋ช…[::] # ๊ฐ์ฒด์˜ ๋ชจ๋“  ์š”์†Œ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ๊ฐ์ฒด๋ช…[์ดˆ๊ธฐ์œ„์น˜:] # ๊ฐ์ฒด์˜ '์ดˆ๊ธฐ์œ„์น˜'์—์„œ ๋งˆ์ง€๋ง‰ ์œ„์น˜๊นŒ์ง€์˜ ์š”์†Œ๋“ค์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ๊ฐ์ฒด๋ช…[:์ตœ์ข…์œ„์น˜] # ๊ฐ์ฒด์˜ 0๋ฒˆ์งธ ์œ„์น˜์—์„œ '์ตœ์ข…์œ„์น˜'-1๊นŒ์ง€์˜ ์š”์†Œ๋“ค์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ๊ฐ์ฒด๋ช…[::์ฆ๊ฐ€๊ฐ’] # ๊ฐ์ฒด์˜ 0๋ฒˆ์งธ ์œ„์น˜์—์„œ ๋งˆ์ง€๋ง‰ ์œ„์น˜๊นŒ์ง€ '์ฆ๊ฐ€๊ฐ’'.. 2022. 10. 6.
ํŒŒ์ด์ฌ - Range ๋ฒ”์œ„ Range Range๋Š” ์—ฐ์†๋œ ์ˆซ์ž๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์œผ๋กœ, ๋ฆฌ์ŠคํŠธ๋‚˜ ๋ฐ˜๋ณต๋ฌธ์—์„œ ๋งŽ์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ํ˜•์‹ range(์ตœ์ข…๊ฐ’) # 0์—์„œ '์ตœ์ข…๊ฐ’'-1๊นŒ์ง€ ์—ฐ์†๋œ ์ˆซ์ž๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. range(์ดˆ๊ธฐ๊ฐ’, ์ตœ์ข…๊ฐ’) # '์ดˆ๊ธฐ๊ฐ’'์—์„œ '์ตœ์ข…๊ฐ’'-1๊นŒ์ง€ ์—ฐ์†๋œ ์ˆซ์ž๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. range(์ดˆ๊ธฐ๊ฐ’, ์ตœ์ข…๊ฐ’, ์ฆ๊ฐ€๊ฐ’) # '์ดˆ๊ธฐ๊ฐ’'์—์„œ '์ตœ์ข…๊ฐ’'-1๊นŒ์ง€ '์ฆ๊ฐ€๊ฐ’'๋งŒํผ ์ฆ๊ฐ€ํ•˜๋ฉด์„œ ์ˆซ์ž๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. ์˜ˆ์‹œ range(5) => [0, 1, 2, 3, 4] # 0๋ถ€ํ„ฐ ์ตœ์ข…๊ฐ’(5)-1๊นŒ์ง€ ์—ฐ์†๋œ ์ˆซ์ž๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. range(1, 5) => [1, 2, 3, 4] # ์ดˆ๊ธฐ๊ฐ’(1)๋ถ€ํ„ฐ ์ตœ์ข…๊ฐ’(5)-1๊นŒ์ง€ ์—ฐ์†๋œ ์ˆซ์ž๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. range(1, 5, 2) => [1, 3] # ์ดˆ๊ธฐ๊ฐ’(1)๋ถ€ํ„ฐ ์ตœ์ข…๊ฐ’(5)-1๊นŒ์ง€ ์ฆ๊ฐ€๊ฐ’(2)๋งŒํผ ์ฆ๊ฐ€ํ•˜๋ฉด์„œ.. 2022. 10. 6.
ํŒŒ์ด์ฌ - APScheduler ์Šค์ผ€์ค„ from apscheduler.schedulers.background import BackgroundScheduler scheduler = BackgroundScheduler(daemon=True, timezone='Asia/Seoul') scheduler.start() scheduler.add_job(custom_function, 'date', run_date="2022-09-12 10:10:00", args=[1, '2', [3]]) ์ฐธ๊ณ : https://mkwilson.tistory.com/215 Python APScheduler ์Šค์ผ€์ค„ ์„ค์ • python ์—์„œ ์Šค์ผ€์ค„์„ ์ ์šฉํ• ๋•Œ๋Š” ๋ณดํ†ต ๋ฆฌ๋ˆ…์Šค์˜ cron ์„ ์‚ฌ์šฉํ•˜์˜€๋‹ค ์ข€๋” ํŽธํ•œ ๋ฐฉ๋ฒ•์„ ์ฐพ๋˜์ค‘ ํŒŒ์ด์ฌ๋‚ด์—์„œ ์Šค์ผ€์ค„์„ ์ œ์–ด ํ•  ์ˆ˜ ์žˆ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์žˆ์—ˆ๋‹ค.. 2022. 9. 12.
ํŒŒ์ด์ฌ - APScheduler ์Šค์ผ€์ค„ ๋ชจ๋“ˆ if obj.zone == 'local': ์—๋Ÿฌ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• sched = BlockingScheduler(timezone='Asia/Seoul') sched.add_job(job,'interval', seconds=3, id='test',args=['hello?']) sched.start() BlockingScheduler(timezone='Asia/Seoul') timezone์„ ํ•œ๊ตญ์œผ๋กœ ์„ค์ •ํ•ด์ค€๋‹ค. ์ถœ์ฒ˜: https://ffoorreeuunn.tistory.com/466 [ Python ] ํŒŒ์ด์ฌ ์Šค์ผ€์ค„๋Ÿฌ ์ž‘์„ฑํ•˜๊ธฐ(APScheduler) - BlockingScheduler | ํŒŒ์ด์ฌ ๋ฐ˜๋ณต ์ž‘์—… ์ˆ˜ํ–‰ ์„œ๋ฒ„ ์œ„์—์„œ ํ•ญ์ƒ ๋Œ์•„๊ฐ€๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“œ๋Š” ์ค‘์ด๋‹ค. ํ•ด๋‹น ํ”„๋กœ๊ทธ๋žจ์ด ํ•˜์œ„ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋งŒ๋“ค์–ด์„œ ๊ณ„์†ํ•ด์„œ ์–ด๋–ค ๋™์ž‘์„ ์ˆ˜ํ–‰ ํ›„ ๋ฐ์ดํ„ฐ๋ฅผ ์ถœ๋ ฅํ•˜๊ณ  ์žˆ๋‹ค. ์ด๋•Œ, wh.. 2022. 9. 12.
ํŒŒ์ด์ฌ - ๋‘ ๊ฐœ ์ด์ƒ ์ค‘๋ณต๋œ ๋ฆฌ์ŠคํŠธ ์š”์†Œ ์ถœ๋ ฅ(count) lis = ['a', 'b', 'c', 'd', 'd'] for (index, value) in enumerate(lis): if lis.count( lis[index] ) >= 2: print(index, value) ์ฐธ๊ณ : https://infinitt.tistory.com/78 ํŒŒ์ด์ฌ(python) ๋ฆฌ์ŠคํŠธ ์ค‘๋ณต ์š”์†Œ ๊ฐœ์ˆ˜ ์ฐพ๊ธฐ (์นด์šดํŒ…) or ์ œ๊ฑฐ,์‚ญ์ œํ•˜๊ธฐ (try , except , count) *์ค‘๋ณต์š”์†Œ ์นด์šดํŒ…ํ•˜๊ธฐ *try, except ๋ฌธ ์‚ฌ์šฉ count={} lists = ["a","a","b",'apple','w','wf'] for i in lists: try: count[i] += 1 except: count[i]=1 print(count) ๊ฒฐ๊ณผ๊ฐ’ : {'a': 2, 'b': 1, 'ap.. 2022. 8. 31.
ํŒŒ์ด์ฌ - ๋ธ”๋ฃจํˆฌ์Šค ๊ด€๋ จ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ธ”๋ฃจํˆฌ์Šค ์—ฐ๊ฒฐ ๋ชจ๋“ˆ https://github.com/pybluez/pybluez GitHub - pybluez/pybluez: Bluetooth Python extension module Bluetooth Python extension module. Contribute to pybluez/pybluez development by creating an account on GitHub. github.com ๋ผ์ฆˆ๋ฒ ๋ฆฌํŒŒ์ด ๋ธ”๋ฃจํˆฌ์Šค ํ‚ค๋ณด๋“œ ์—๋ฎฌ๋ ˆ์ดํ„ฐ https://github.com/quangthanh010290/keyboard_mouse_emulate_on_raspberry GitHub - quangthanh010290/keyboard_mouse_emulate_on_raspberry: Bluetooth Key.. 2022. 8. 23.
ํŒŒ์ด์ฌ - ์นด์นด์˜คํ†ก smtp(๋ฉ”์ผ ์ „์†ก) ๊ธฐ๋Šฅ ์‚ฌ์šฉํ•˜๊ธฐ ์ž์‹ ์˜ ์›น ์นด์นด์˜ค ๋ฉ”์ผ ํŽ˜์ด์ง€๋กœ ๊ฐ€์…”์„œ ํ™˜๊ฒฝ์„ค์ •์—์„œ "IMAP / SMTP ์‚ฌ์šฉ"์„ ์‚ฌ์šฉํ•จ์œผ๋กœ ์„ค์ • ํ•ด์ค๋‹ˆ๋‹ค. # -*- coding:utf-8 -*- import smtplib from email.mime.text import MIMEText def sendMail(me, you, msg): smtp = smtplib.SMTP_SSL('smtp.kakao.com', 465) smtp.login(me, '์ž์‹ ์˜ ๋น„๋ฐ€๋ฒˆํ˜ธ') msg = MIMEText(msg) msg['Subject'] = 'TEST' msg['From'] = me msg['To'] = you smtp.sendmail(me, you, msg.as_string()) smtp.quit() if __name__ == "__main__": sen.. 2022. 7. 29.
728x90