본문 바로가기

Python/파이썬 문법, 함수, 모듈 등21

[Python] 효율적인 대용량 데이터 삽입 방법 예시 코드# DB 연결 객체와 관련 정보는 생략# 주어진 리스트(result_list)를 일정 크기(chunk_size)의 리스트들로 나누는 함수def chunks(lst, chunk_size): for i in range(0, len(lst), chunk_size): yield lst[i:i + chunk_size]# result_list가 1000개의 요소를 가지고 있다고 가정# 각 chunk는 100개의 요소를 가지므로 첫 번째 for문은 10번 반복하게 됩니다for chunk in chunks(result_list, 100): record = [] # 매 chunk마다 새롭게 record 리스트를 초기화 for data in chunk: 변수1 = da.. 2024. 5. 30.
[Python] SSH 터널링, pymysql 설명과 사용 방법, %s(플레이스홀더) 사용법 sshtunnel, pymysql SSH 터널링이란?사용 이유는 보안과 네트워크 접근성을 향상시키기 위함이며, 주로 데이터베이스 서버가 내부 네트워크에 위치하여 외부에서 직접 접근할 수 없는 경우에 사용됩니다. SSH 터널링은 외부에서 안전하게 내부 서버에 접근할 수 있도록 허용해주는 메커니즘입니다. 외부 클라이언트는 SSH 프로토콜을 통해 중간 서버(터널 서버)에 접속한 후, 해당 서버를 통해 내부 서버에 접근할 수 있습니다. 이를 통해 데이터베이스와 같은 중요한 서비스에 대한 보안을 강화하고, 외부에서 안전하게 접근할 수 있도록 합니다. pymysql이란?Python 코드에서 MySQL 데이터베이스에 쉽게 접근하고 데이터를 처리할 수 있습니다. 이 라이브러리는 MySQL 서버와의 통신을 가능하게 하므로, 데이터베이스와의 상호작용이 필.. 2024. 5. 29.
[Python] Google Sheets에서 데이터 읽어 오는 방법 gspread 사용하기 위해 gspread 모듈 다운pip install gspread  사용 예시)import gspread# Google Sheets에서 데이터를 읽어오는 함수def read_google_sheets(service_account_file, spreadsheet_url, sheet_name, cell_range): try: # Google Sheets 서비스 인증 및 문서 가져오기 gc = gspread.service_account(filename=service_account_file) sh = gc.open_by_url(spreadsheet_url) ws = sh.worksheet(sheet_name) # 셀 범위에서.. 2024. 5. 29.
[Python] 외부 프로세스 실행하는 법 subprocess subprocess란?파이썬에서 외부 프로세스를 실행하고 상호작용하는 데 사용 이 모듈을 사용하면 새로운 프로세스를 생성하고 커뮤니케이션을 통해 입력을 전달하고 결과를 받아올 수 있습니다.주요 함수로는 subprocess.Popen()과 subprocess.run()이 있습니다.subprocess.Popen(): 이 함수는 외부 명령어를 실행하고 상호작용할 수 있는 프로세스 객체를 반환합니다. 이를 통해 표준 입력(stdin), 표준 출력(stdout), 표준 에러(stderr)를 제어할 수 있습니다. 이를 통해 여러 파이프라인으로 데이터를 전달하고 프로세스 간 통신을 할 수 있습니다.subprocess.run(): 이 함수는 명령어를 실행하고 결과를 반환합니다. 주로 간단한 명령어를 실행하고 그 결과를.. 2024. 5. 28.
[Python] 2. Multiprocessing(멀티 프로세싱) 결과를 정렬하여 받는 방법, 공유할 데이터가 있을 때의 방법 multiprocessing.Manager() 결과를 정렬하여 받는 방법 프로세스들이 병렬로 실행되기 때문에,결과값의 순서가 보장되지 않으므로, 정렬을 통해 순서를 맞추어 출력하면 된다.실제 작업은 병렬로 작업하여 순서가 맞지 않지만, 결과만 순서대로 받고 작업이 전부 끝날 때 한번에 받는다. 예시)import multiprocessingdef update_data(index, url): # 데이터 처리 로직 return f"{index}\t{url}"if __name__ == "__main__": # 데이터 준비 index_list = [1, 2, 3, 4] url_list = ["url1", "url2", "url3", "url4"] # 멀티프로세싱 Pool 객체 생성 with multiprocessing.P.. 2024. 5. 28.
[Python] 1. Multiprocessing(멀티 프로세싱) 설명과 사용법 Multiprocessing(멀티 프로세싱)멀티 프로세싱을 활용하면 여러 작업을 별도의 프로세스를 생성 후 병렬처리해서 더 빠르게 결과를 얻을 수 있다. 멀티 프로세싱을 잘 활용하면 멀티코어의 CPU 장점을 잘 살릴 수 있지만,  병렬 프로그래밍의 이해 없이 코드를 작성하면 싱글 프로세스보다 더 느린 경우나,  예상하지 못한 결과가 나올 수 있으니 프로세스, 쓰레드에 대한 이해가 필요하다.   * 멀티 프로세싱은 메모리 사용률이 높아지는 단점이 있다.방법 1: Process 객체를 이용한 방법import osfrom multiprocessing import Process# 실행할 함수def f(name): print(f"Hello, {name}")if __name__ == "__main__": .. 2024. 5. 28.
[Python] any() 함수와 시퀀스(Sequence)와 이터러블(Iterable)에 대한 설명, 리스트 컴프리헨션, 제너레이터 표현식 설명 any() 함수 설명과 예제any() 함수는 파이썬 내장 함수 중 하나로, 인자로 반복 가능한(iterable) 객체를 받아 그 안에 있는 요소 중 하나라도 참이면 True를 반환하고, 모든 요소가 거짓일 경우에만 False를 반환합니다. 따라서 any() 함수는 주어진 조건을 만족하는 요소가 있는지 여부를 판단할 때 사용됩니다. 예제)user_ids = ['user1', 'user2', 'user3']partner_lst = [['user4', 'user5'], ['user6', 'user1'], ['user7', 'user8']]# 파트너 리스트에 사용자 아이디가 있는지 확인found = any(user_id in partner for partner in partner_lst for user_id i.. 2024. 5. 28.
[Python] 파일, 폴더 관련된 모듈과 함수들 os, makedirs(), os.path.join(), shutil, exists(), remove(), listdir() 폴더 생성하는 방법폴더를 생성하는 방법은 os.makedirs() 함수를 사용합니다. 이 함수는 하위 디렉토리를 모두 생성하며, exist_ok=True 옵션을 주면 이미 폴더가 존재해도 오류를 내지 않고 넘어갑니다.import os# 현재 경로에서 a폴더, 그 하위에 b폴더, 그 하위에 log폴더 생성os.makedirs('./a/b/log', exist_ok=True)경로 합치는 함수파일 경로를 합치는 함수로는 os.path.join() 함수를 사용합니다. 이 함수는 운영체제에 맞게 경로를 연결해줍니다.import osoutput_folder_path = './output'file_name = 'result.txt'# 경로와 파일명을 합쳐서 전체 경로 생성full_path = os.path.join(.. 2024. 5. 28.
[Python] for-else문과 try-except-else-finally문 설명과 예제 for-else 문for-else 문은 반복문이 정상적으로 (즉, break 문 없이) 종료되었을 때 else 블록을 실행하는 구조입니다.for 반복문이 break 문을 만나서 중단되면 else 블록은 실행되지 않습니다. 예제)numbers = [1, 2, 3, 4, 5]# 2로 나눠지는 숫자 찾기for number in numbers: if number % 2 == 0: print(f"{number}는 2로 나눠집니다.") breakelse: # for 문이 break 없이 끝났을 때 실행 print("2로 나눠지는 숫자가 없습니다.") try-except-else-finally try-except-else-finally 문은 예외 처리를 위해 사용되며, 각 블.. 2024. 5. 28.
[Python] configparser 모듈을 사용하여 설정 파일에서 정보를 읽는 방법, 사용자에게 정보를 입력 받아 설정 파일에 저장하고 읽는 방법 configparser 설정 파일에서 정보를 읽으려면? ― configparserini 파일은 프로그램 정보를 저장하는 텍스트 문서로 [섹션]과 그 섹션에 해당하는 키 = 값으로 구성된다.  configparser는 이러한 형식의 ini, txt 등의 파일을 처리할 때 사용하는 모듈이다. 예시) config.ini 파일[DEFAULT]ServerAliveInterval = 45Compression = yesCompressionLevel = 9ForwardX11 = yes[bitbucket.org]User = hg[topsecret.server.com]Port = 50022ForwardX11 = no 사용법)import configparserconfig = configparser.ConfigParser()config.read('.. 2024. 5. 28.