-
[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