ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • (Linux)환경 실행코드 python3로 주식 정보 수집
    주식정보 수집하기 2021. 12. 6. 17:49

    이번에는 jupyter notebook 말고 Linux환경에서 python3 실행코드로 주식정보를 수집하여 보자. jupyter notebook에서 명령 코드를 작성 후 파이썬 파일로 변환 후 Linux 확경에서 실행 시켜 csv파일에 자동으로 주식 정보를 수집하는 법을 하려고 한다.  이제부터 하나씩 알아보도록 하자. 주식 데이터, 10년치 수집은이전 블로그에 있으니 아래 링크를 참고하자.

     

     

    1. 라이브러리 및 데이터 불러오기

    import os
    import pandas as pd
    import time
    from pykrx import stock
    
    stock_total = pd.read_csv("stock_list.csv")

     

     

    2. 날짜 설정

    start_day = "20111201"
    end_day = "20211201"

     

     

    3. 반복문 이용 주식 데이터 수집

    이전 반복문과 비슷하지만 Linux환경에서 바로 실행시켜 csv 파일에 바로 데이터 수집을 할 예정이다. 그래서 OS 라이브러리를 불러와  csv파일을 설정해주고 바로 데이터 수집에 들어가보자.  데이터 범위가 크므로 5개의 범위만 지정해 결과를 보도록 하자.

    #for i in range(len(stock_total)):
    for i in range(5):    
        stock_code = stock_total['종목코드'][i]
        stock_name = stock_total['종목명'][i]
        market = stock_total['시장구분'][i]
        
     #stock.get_market_ohlcv_by_date 주식데이터 시작일,종료일,티커 파라미터를 넣어주면 일자별로 정렬하여 DataFrame으로 반환한다.
        stock_df = stock.get_market_ohlcv_by_date(fromdate=start_day, todate=end_day, ticker=stock_code) 
        # 위 데이터를 가져오면 날짜,시가,고가,저가,..등만 나오므로 칼럼을 추가해주도록 하자.
        stock_df["종목명"] = stock_name 
        stock_df["종목코드"] = stock_code
        stock_df["시장구분"] = market
        
        
        stock_df = stock_df.reset_index()
        time.sleep(1)
        print(stock_name)
        
        # csv 파일이 없다면 csv파일을 만들어 주는 코드
        if not os.path.exists('stock_df_total_2.csv'): 
            stock_df.to_csv('stock_df_total_2.csv', index=False, mode='w') 
        # csv파일이 있다면 csv파일에 데이터를 누적 수집한다. header = False는 컬럼을 뺴고 수집한다.
        else:
            stock_df.to_csv('stock_df_total_2.csv', index=False, mode='a', header=False)

     

     

    4. 파이썬 파일 변환

    $ jupyter nbconvert --to script [파일명].ipynb
    예)  jupyter nbconvert --to script stock_total.ipynb

     

     

    5. Linux 환경 실행 

    이제 파이썬 파일을 Linux환경에서 실행을 시켜보도록하자.

    2가지 실행 방법이 있다 . python3 를 실행 시키는 법과 백엔드에서 실행시키는 방법. 

    • 1. python3 실행하면 중간에 print(stock_name) 명령어가 있어 잘 수집되는지 볼 수 있다.
    • 2. nohup python3 실행시 백엔드에서 실행된다.
    python3 실행
    
    $ python3 파일명
    
    백엔드 python3 실행
    
    $ nohup python3 파일명

     

     

    6. 확인하기

    이제 주식 정보 데이터가 잘 수집되었는지 파일을 불러와 확인하자. 데이터가 너무 크므로 일단 범위를 5로 지정하여 출력을 하였다. 제대로 실행시 데이터가 이전처럼 백만이 넘어가는 데이터가 나올 것 이다.

    stock_total = pd.read_csv("stock_df_total_2.csv")
    stock_total

    이로써 Linux 환경에서 csv에 바로 주식 데이터를 수집 하는 방법을 배웠다. 다음 단계도 찾아보고 더욱 좋은 정보로

    블로그에 남겨보도록 하겠다. 

    댓글

Designed by Tistory.