728x90 ๐จ๐ผ๐ป๊ฐ๋ฐ/ํ์ด์ฌ35 ํ์ด์ฌ - ๐ requests ์๋ ์ฌ๋ฆฌ๋ ๋ฐฉ๋ฒ (Session) ์ธ์ (Session) ์ฌ์ฉํ๊ธฐ๋งค ์์ฒญ๋ง๋ค ์ ์ฐ๊ฒฐ์ ๋ง๋ค๋ฉด ๋๋ฆฝ๋๋ค. requests.Session()์ ์ฐ๋ฉด ์ปค๋ฅ์ ํ๋ง์ผ๋ก ํจ์ฌ ๋นจ๋ผ์ง๋๋ค.import requestssession = requests.Session()for url in urls: r = session.get(url) ์ฑ๋ฅ ์ฐจ์ด ๊ฝค ๋์. ๊ผญ ์ธ์ ์ฐ๊ธฐ! ์ข: requests๋ง ์ฐ๊ธฐ / ์ฐ: session ์ฐ๊ธฐ 2025. 4. 10. ํ์ด์ฌ - ์ธํฐํ๋ฆฌํฐ์์ ์ปดํ์ผ๋ก ์๋ ์ฑ๋ฅ ํฅ์(Nuitka) ์ค๋ช : Nuitka๋ Python ์ฝ๋๋ฅผ C/C++ ์ฝ๋๋ก ๋ณํํด ์คํ ๊ฐ๋ฅํ ๋ฐ์ด๋๋ฆฌ ํ์ผ์ ์์ฑํ๋ Python ์ปดํ์ผ๋ฌ์ ๋๋ค. Python ์ธํฐํ๋ฆฌํฐ ๋ฐฉ์์ ํ๊ณ๋ฅผ ๋ณด์ํ๊ณ , ์คํ ์๋๋ฅผ ํฅ์์ํค๋ฉฐ, ์ฝ๋๋ฅผ ์ต์ ํํ๋ ๋ฐ ๋์์ ์ค๋๋ค. ๋ํ, Python ์ฝ๋๋ฅผ ๋ฐฐํฌ ๊ฐ๋ฅํ ํํ๋ก ํจํค์งํ ์ ์์ด ์์ค ์ฝ๋ ๋ณดํธ ๋ฐ ์์กด์ฑ ๊ด๋ฆฌ๋ฅผ ๊ฐํธํ๊ฒ ํ ์ ์์ต๋๋ค. ํ์ด์ฌ์ ์ธํฐํ๋ฆฌํฐ๋ก ์ฒ๋ฆฌ๋ฅผ ํ๋ค ๋ณด๋ ๋ค๋ฅธ ๋ฐ์ด๋๋ฆฌ ํ์ผ๋ค์ ๋นํด ์๋๋ฉด์์๋ ๋ถ์กฑํ ์ ์๋ค. ์๋๊ฐ ๋ถ์กฑํ๋ฉด ์ฒ๋ฆฌ๋๋ ๋ค๋จ์ด์ง๊ณ ๊ฒฐ๊ตญ ์ฑ๋ฅ์ด ๋ค์ณ์ง๊ฒ ๋๋ค. ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด Nuitka๋ฅผ ์ฌ์ฉํด ํ์ด์ฌ ํ์ผ์ ์ปดํ์ผํ์ฌ ์คํ ์๋๋ฅผ ํฅ์ ์ํฌ ์ ์๋ค. ๋์ ์ปดํ์ผ ํ๋๋ฐ ์ปดํจํฐ ์ฑ๋ฅ์ ๋ฐ๋ผ์ ์๊ฐ์ด ์ค๋ ์์ํ ์ ์๋ค. ๋ํ .. 2025. 4. 10. ํ์ด์ฌ - pip "error: externally-managed-environment" ๋ฌธ์ ํด๊ฒฐ sudo rm /usr/lib/python3.11/EXTERNALLY-MANAGED ์ถ์ฒ: https://velog.io/@dongju101/error-externally-managed-environment-%EB%AC%B8%EC%A0%9C-%ED%95%B4%EA%B2%B0 error: externally-managed-environment ๋ฌธ์ ํด๊ฒฐ๋ค์ ๋ช ๋ น์ด ์ ๋ ฅ์ ํด๊ฒฐ ๊ฐ๋ฅvelog.io 2024. 8. 10. ํ์ด์ฌ - url๋ก๋ถํฐ ์ด๋ฏธ์ง ๋ค์ด๋ก๋(urllib.request) import urllib.request urllib.request.urlretrieve(img_url, f'./cache/images/' + str(idx) + '.png') 2023. 8. 25. ํ์ด์ฌ - ํ ๋ ๊ทธ๋จ API ์ฌ์ฉ์ ์์ด๋ ๋ฐ ์ ๋ณด ๊ฐ์ ธ์ค๊ธฐ https://api.telegram.org/bot{bot_api_key}/getUpdates {"ok":true,"result":[{"update_id":000000000, "message":{"message_id":00,"from":{ "id":0000000000, "is_bot":false, "first_name":"ABC", "username":"ABC", "language_code":"ko"},.. 2023. 8. 1. ํ์ด์ฌ - ์คํฌ๋ฆฝํธ ํ์ผ ์คํ ๋์ค ์ธํฐ๋ํฐ๋ธ ๋ชจ๋๋ก ์ ํํ๊ธฐ import code def interactive_function(): # ์คํฌ๋ฆฝํธ ์คํ ์ค๊ฐ์ ์ธํฐ๋ํฐ๋ธ ๋ชจ๋๋ก ์ ํ console = code.InteractiveConsole(locals=globals()) console.interact("์ธํฐ๋ํฐ๋ธ ๋ชจ๋๋ก ์ ํํฉ๋๋ค.") print("์คํฌ๋ฆฝํธ ์คํ ์ค...") # ์คํฌ๋ฆฝํธ ์คํ ๋ก์ง # ์ค๊ฐ์ ์ธํฐ๋ํฐ๋ธ ๋ชจ๋๋ก ์ ํ interactive_function() 2023. 7. 29. ํ์ด์ฌ - ๋ก๋ฉ๋ฐ(Progress Bar) ๊ตฌํ ๋ชจ๋(tqdm) ๋ชจ๋ ์ค์น pip install tqdm ์ฌ์ฉ ์์ from time import sleep from tqdm import tqdm for i in tqdm(range(10)): sleep(1) ์ถ์ฒ: https://stackoverflow.com/questions/3160699/python-progress-bar Python Progress Bar How do I use a progress bar when my script is doing some task that is likely to take time? For example, a function which takes some time to complete and returns True when done. How can I display a stac.. 2023. 7. 17. ํ์ด์ฌ - PyAutoGUI๊ฐ ์๋ ๊ฒฝ์ฐ ๋์ฒด ๊ฐ๋ฅํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ(PyDirectInput) ๊ธฐ๋ณธ PyAutoGUI๋ ๊ฐ์ ํค(VK)์ mouse_event() ๋ฐ keybd_event() win32 ํจ์๋ฅผ ์ฌ์ฉํ๊ณ ์๋๋ฐ ์ด๋ ์ผ๋ถ ์์ฉ ํ๋ก๊ทธ๋จ๋ค, ๋น๋์ค ๊ฒ์์ด๋ DirectX์ ์ง์ํ์ง ์์ ์ ๋๋ก ์๋ํ์ง ์์ ์ ์๋ค. ๊ทธ๋์ PyDirectInput ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ DirectInput ์ค์บ ์ฝ๋์ SendInput() win32 ๊ฐ์ ์ต์ ๋ฐฉ์์ ์ฌ์ฉํด ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋ค. PyPi - PyDirectInput https://pypi.org/project/PyDirectInput/ PyDirectInput Python mouse and keyboard input automation for Windows using Direct Input. pypi.org ์ฝ๋ ์์ >>> impo.. 2023. 7. 15. ํ์ด์ฌ - ๋ฆฌ๋ ์ค์์ GPT ๋ช ๋ น์ด ์ฌ์ฉํ๊ธฐ ๋ชจ๋ ์ค์น pip install openai ~/dev/gpt.py import openai import sys openai.api_key = "์์ ์ API ํ ํฐ์ ์ฌ๊ธฐ์ ์ ๋ ฅ" messages = [ {"role": "system", "content": "You are a helpful assistant."}, ] def request(text:str): global messages if len(messages) >= 30: messages = messages[-10:] query = text messages.append({"role": "user", "content": query}) response = openai.ChatCompletion.create( model="gpt-3.5-turbo", m.. 2023. 5. 22. ํ์ด์ฌ - ๋ ์ง์คํธ๋ฆฌ ์กฐ์(winreg) import winreg # ๋ ์ง์คํธ๋ฆฌ ํค ์์ฑ key_path = r"Software\MyExampleKey" try: key = winreg.CreateKey(winreg.HKEY_CURRENT_USER, key_path) print("ํค ์์ฑ ์ฑ๊ณต") except: print("ํค ์์ฑ ์คํจ") # ๋ ์ง์คํธ๋ฆฌ ํค์ ๊ฐ ์ค์ value_name = "ExampleValue" value_data = "Hello, Registry!" try: winreg.SetValueEx(key, value_name, 0, winreg.REG_SZ, value_data) winreg.CloseKey(key) print("๊ฐ ์ค์ ์ฑ๊ณต") except: print("๊ฐ ์ค์ ์คํจ") # ๋ ์ง์คํธ๋ฆฌ ํค์์ ๊ฐ ์ฝ๊ธฐ try.. 2023. 5. 5. ํ์ด์ฌ - pyinstaller ๊ด๋ฆฌ์ ๊ถํ์ผ๋ก ์คํ ํ๊ธฐ --uac-admin ์ต์ ์ ์ถ๊ฐํ๊ณ ๋น๋๋ฅผ ํ๋ฉด ๊ด๋ฆฌ์ ๊ถํ์ผ๋ก ์คํ์ด ๊ฐ๋ฅํ๋ค. ์์ pyinstaller -w --uac-admin test.py ์ถ์ฒ: https://dev-dream.tistory.com/4 pyinstaller ๋ก exe ๋ง๋ค ๋ ๊ด๋ฆฌ์ ๊ถํ์ผ๋ก ์คํํ๊ธฐ python ์ผ๋ก ํ๋ก๊ทธ๋จ์ ๋ง๋ค๋ฉด exe (์คํํ์ผ) ํํ๋ก ๋ฐฐํฌํ ๊ฒฝ์ฐ๊ฐ ์๋ค. py2exe ๋ฅผ ์ฃผ๋ก ์ผ๋๋ฐ setup ํ์ผ ๋ง๋๋๊ฒ ๋ถํธํ๋๋ฐ pyinstaller ๋ฅผ ํ์ฉํ๋ฉด ์ฝ๊ฒ ๋ง๋ค ์ ์๋ค. pip3 install pyinstaller ๋ก pyins dev-dream.tistory.com 2023. 5. 5. ํ์ด์ฌ - ๋งฅ ์ฃผ์ ๋ณ๊ฒฝ(changeMAC) changeMAC.py (๊ด๋ฆฌ์ ๊ถํ ํ์) from winreg import * import os, time def run(adapterName, adapterType="Wi-Fi"): aReg = ConnectRegistry(None, HKEY_LOCAL_MACHINE) aKey = OpenKey(aReg, r"SYSTEM\CurrentControlSet\Control\Class\{4d36e972-e325-11ce-bfc1-08002be10318}") oKey = None sValue = None for i in range(255): try: aValue_name = EnumKey(aKey, i) oKey = OpenKey(aKey, aValue_name) sValue = QueryValueEx(oK.. 2023. 5. 2. ์ด์ 1 2 3 ๋ค์ 728x90