코딩

크롤링을 할 때 보통 requests와 BeautifulSoup을 통해 크롤링을 한다. 빠르긴 하지만 몇 만개의 데이터를 처리할 때는 이마저도 느리게 보인다. 더 빠르게 처리하기 위해서 크롤링을 혼자서가 아닌 여러명에서 하면 된다. 그것이 바로 멀티 프로세싱을 이용하는 방법이다. 모듈 설치 pip install multiprocess 일단 multiprocess를 설치한 후 모듈을 import 한다 from multiprocessing import Pool, Manager 예제 freeze_support() # 코어 수 pool = Pool(processes=5) # 함수, 파라미터 pool.starmap(crawl_link, zip(link_list,repeat(novel_df_list))) pool...
📙 큐(Queue) 큐는 선입선출 형태로 먼저 넣은 데이터가 삭제할 때 먼저 나가게 되는 형태다 💻 큐 기본 구조 💻 큐 넣기 먼저 데이터를 넣을 용량을 설정하고 큐 내부를 비운 다음, 데이터를 넣고 rear(데이터를 넣을 빈 공간)을 +1 해준다. 기본적으로 rear는 -1에서부터 시작한다. def enQueue(): global rear, queue_list data = input("데이터 입력") if len(queue_list) == 0: print('큐가 비어있음') return rear += 1 queue_list[rear] = data 💻 큐 삭제(빼기) 가장 처음 데이터를 지우고 다음 데이터들을 앞으로 땡긴다. def deQueue(): global front, rear, queue_lis..
📙더블 링크드 리스트 💻더블 링크드 리스트 더블 링크드 리스트(Double Linked List)는 한 쪽으로밖에 갈 수 없는 단순 리스트(Linked list)를 보안하혀 만들어졌다. 한 번 시작하면 한 쪽으로밖에 갈 수 없는 것에 비해 더블 링스드 리스트는 앞과 뒤의 위치가 저장되어 데이터 정의에 용이하다. 💻 기본 형태 💻 노드 생성 노드 생성은 단순 연결 리스트와 같다. class Node: def __init__(self): self.prev = None self.data = None self.next = None 현재 노드를 기준으로 이전 노드를 저장할 prev와 다음 노드를 저장할 next를 가지고있다. 💻 노드 삽입 노드 삽입은 3가지 경우가 있다. head 앞 일때 노드 사이일 때 마지막..
📒 서클 리스트(Circle List) 💻 기본 구조 💻 노드 넣기 노드를 넣는데에는 5가지 경우가 있다. 첫 노드일 때 1-1. 노드가 있는 상태에서 헤드 다음으로 넣을 때 중간에 넣을때 마지막에 넣을때 3-1. 마지막 직전에 넣을 때 def add_node(data): global head node = Node() node.data = data temp = head # 노드가 없을때 if not head: head = node node.link = head return # head 앞에 삽입할 때, 오름차순 정렬이기 때문에 # head의 데이터 즉 처음 데이터보다 작다는 것은 # 가장 앞에 들어간다는 의미 elif temp.data > node.data: node.link = temp # 가장 뒤에 ..
📒 Linked-list (연결 리스트) 💻 Linked-list란? 링크드 리스트는 배열의 단점을 보완하기 위해 만들어진 자료구조다. Linked-list 구조 head: 첫(시작지점) 노드를 가리키고 있다. node: 데이터와 다음 데이터를 가리키는 link를 가지고 있다. Link-list는 다음 노드를 가리키는 link에 NULL을 넣음으로서 끝을 지정할 수 있다. 💻 노드 생성 # 노드를 만들 수 있는 클래스 생성 class Node: def __init__(self): self.datat = None self.link = None # head 변수 생성 head = None # 노드 생성 node = Node() node.data = 10 # head가 시작지점인 node를 가리킴 head =..
pip3 install webrtcvad을 하는데 오류가 발생했다. ERROR: Command errored out with exit status 1: command: /usr/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-fz08njwh/webrtcvad/setup.py'"'"'; __file__='"'"'/tmp/pip-install-fz08njwh/webrtcvad/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close(..
wsl 우분투에서 vscode를 사용하는데 이런식의 창이 뜨면서 저장이 안된다. 밑에 명령어 한 번이면 끝 sudo chown -R $my-computer: sudo chown -R my-computer . 출저
@bot.command() async def play(ctx): channel = ctx.author.voice.channel await channel.connect() 이런식으로 음성채널로 입장하는 코드를 썼는데 입장이 안된다. 딱히 오류가 뜨지도 않고 다른 명령어는 된다. 그럴때는 PyNaCl 모듈을 설치하면 된다. pip install PyNaCl 그럼 이렇게 잘 들어와지는 것을 확인할 수 있다.