ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [datetime] 데이터 자동 수집 가이드
    정보자동수집 가이드 2022. 7. 25. 22:42

    코드 작성하기

    주피터 파일을 생성 후 데이터 수집 코드를 작성합니다.

     

     

     

     

    In [1]:

    import pandas as pd
    import datetime
    import sqlite3

    pandas, datetime, sqlite3 라이브러리를 불러옵니다.

     

     

    In [2]:

    today = datetime.datetime.now()

    datetime의 now 메서드를 사용합니다.

     

     

    In[3]:

    datetime_df = pd.DataFrame({'year':[today.year],
                               'month':[today.month],
                               'day':[today.day],
                               'hour':[today.hour],
                               'minute':[today.minute]})

    칼럼을 추가합니다.

     

     

    In[4]:

    datetime_df

    Out[4]:

     

     

    In[5]:

    datetime_df.to_csv('datetime_df.csv', index=False, mode ='a', header = False)

    csv파일을 생성합니다.

     

     

    In[6]:

    pd.read_csv('datetime_df.csv')

    생성한 csv파일을 불러옵니다.

     

     

     

     

     

     

     

     

     

    SQLite3

     

     

    In[7]:

    conn = sqlite3.connect("datetime5.db")

    DB를 호출합니다.

    • employee.db가 없을 경우 : 새로 생성하며 연결
    • employee.db가 있을경우 : 해당 db로 연걸

     

     

    In[8]:

    cur = conn.cursor()

    cursor를 생성합니다.

     

     

    In[9]:

    conn.execute('CREATE TABLE IF NOT EXISTS datetime_data5(year INTEGER, month INTEGER, day INTEGER, hour INTERGER, min INTERGER)')

    테이블을 생성합니다.

     

     

    In[10]:

    year_value = int(datetime_df['year'])
    month_value = int(datetime_df['month'])
    day_value = int(datetime_df['day'])
    hour_value = int(datetime_df['hour'])
    minute_value = int(datetime_df['minute'])

    테이블 생성시 자료형을 INTERGER 로 했기 때문에 int()를 사용합니다.

     

     

    In[11]:

    cur.execute('INSERT INTO datetime_data5 VALUES(:year, :month, :day, :hour, :minute);', 
                {"year":year_value, "month":month_value, "day":day_value, "hour": hour_value, "minute": minute_value})

    각각의 데이터들을 삽입합니다.

     

     

    In[12]:

    cur.execute("SELECT month, day, hour, min FROM datetime_data5")

    데이터를 확인합니다.

     

     

    In[13]:

    df = pd.DataFrame(cur.fetchall())
    df

    DataFrame을 호출합니다.

     

     

    Out[13]:

     

     

    In[14]:

    conn.commit()

    In[15]:

    conn.rollback()

    변경사항을 저장합니다.

     

     

    In[16]:

    conn.close()

    DB를 종료합니다.

     

     

     

     

     

     

     

     

     

    크론탭 사용

    크론탭은 윈도우의 스케줄러와 비슷한 개념입니다.

    리눅스에서 특정 시간에 특정 프로그램을
    주기적으로 수행시키는 프로그램입니다.

     

    ● crontab -e (크론탭 설정창 이동 코드)
    ● crontab -l (설정된 명령어 리스트 보기 코드)

     

     

     

     

    ex) 요일(0 ~ 7) : 0과7은 일요일, 1(월요일) ~ 6(토요일)
    45 : 매시각 45분에 작업 실행
    40 7 4 : 매주 목요일(4) 7시 40분에 작업 실행

     

     

     

     

     

    다음 코드를 이용해 주피터 파일을 파이썬 파일로 변경합니다. (ipynb -> py)

    $ jupyter nbconvert --to script 파일이름.ipynb

     

Designed by Tistory.