initial commit
This commit is contained in:
68
한국투자증권(API)/stocks_info/domestic_commodity_future_code.py
Normal file
68
한국투자증권(API)/stocks_info/domestic_commodity_future_code.py
Normal file
@@ -0,0 +1,68 @@
|
||||
'''상품선물옵션 종목코드(fo_com_code_mts.mst) 정제 파이썬 파일'''
|
||||
|
||||
import pandas as pd
|
||||
import urllib.request
|
||||
import ssl
|
||||
import zipfile
|
||||
import os
|
||||
|
||||
base_dir = os.getcwd()
|
||||
|
||||
def get_domestic_com_future_master_dataframe(base_dir):
|
||||
|
||||
# download file
|
||||
print("Downloading...")
|
||||
|
||||
ssl._create_default_https_context = ssl._create_unverified_context
|
||||
urllib.request.urlretrieve("https://new.real.download.dws.co.kr/common/master/fo_com_code.mst.zip", base_dir + "\\fo_com_code.mst.zip")
|
||||
os.chdir(base_dir)
|
||||
|
||||
fo_com_code_zip = zipfile.ZipFile('fo_com_code.mst.zip')
|
||||
fo_com_code_zip.extractall()
|
||||
fo_com_code_zip.close()
|
||||
file_name = base_dir + "\\fo_com_code.mst"
|
||||
|
||||
# df1 : '상품구분','상품종류','단축코드','표준코드','한글종목명'
|
||||
tmp_fil1 = base_dir + "\\fo_com_code_part1.tmp"
|
||||
tmp_fil2 = base_dir + "\\fo_com_code_part2.tmp"
|
||||
wf1 = open(tmp_fil1, mode="w")
|
||||
wf2 = open(tmp_fil2, mode="w")
|
||||
with open(file_name, mode="r", encoding="cp949") as f:
|
||||
for row in f:
|
||||
rf1 = row[0:55]
|
||||
rf1_1 = rf1[0:1]
|
||||
rf1_2 = rf1[1:2]
|
||||
rf1_3 = rf1[2:11].strip()
|
||||
rf1_4 = rf1[11:23].strip()
|
||||
rf1_5 = rf1[23:55].strip()
|
||||
wf1.write(rf1_1 + ',' + rf1_2 + ',' + rf1_3 + ',' + rf1_4 + ',' + rf1_5 + '\n')
|
||||
rf2 = row[55:].lstrip()
|
||||
wf2.write(rf2)
|
||||
wf1.close()
|
||||
wf2.close()
|
||||
part1_columns = ['상품구분','상품종류','단축코드','표준코드','한글종목명']
|
||||
df1 = pd.read_csv(tmp_fil1, header=None, names=part1_columns, encoding='cp949')
|
||||
|
||||
# df2 : '월물구분코드','기초자산 단축코드','기초자산 명'
|
||||
tmp_fil3 = base_dir + "\\fo_com_code_part3.tmp"
|
||||
wf3 = open(tmp_fil3, mode="w")
|
||||
with open(tmp_fil2, mode="r", encoding="cp949") as f:
|
||||
for row in f:
|
||||
rf2 = row[:]
|
||||
rf2_1 = rf2[8:9]
|
||||
rf2_2 = rf2[9:12]
|
||||
rf2_3 = rf2[12:].strip()
|
||||
wf3.write(rf2_1 + ',' + rf2_2 + ',' + rf2_3 + '\n')
|
||||
wf3.close()
|
||||
part2_columns = ['월물구분코드','기초자산 단축코드','기초자산 명']
|
||||
df2 = pd.read_csv(tmp_fil3, header=None, names=part2_columns, encoding='cp949')
|
||||
|
||||
# DF : df1 + df2
|
||||
DF = pd.concat([df1,df2],axis=1)
|
||||
# print(len(df1), len(df2), len(DF))
|
||||
DF.to_excel('fo_com_code.xlsx',index=False) # 현재 위치에 엑셀파일로 저장
|
||||
|
||||
return DF
|
||||
|
||||
df = get_domestic_com_future_master_dataframe(base_dir)
|
||||
print("Done")
|
||||
Reference in New Issue
Block a user