연구실에 finance, db일을 하게되었다. 파이썬을 통해서, DB를 수정한다. oracle을 통한 mysql을 수업에서 해보았는데, 파이썬을 통해서 하기 때문에 공부를 하면서
- python 2.7 설치
- mysql
- python- mysql 연동 프로그램 설치
파이썬은 많은 라이브러리 설치가 간단하게 되는 pip이 유용하다.
pip설치
http://blog.naver.com/mirhyewon/220304963178
여러가지를 찾아봤지만 이게 제일 잘되어있다.
https://pypi.python.org/packages/source/d/distribute/distribute-0.6.49.tar.gz
그러다가 py-mysql 발견
....
파이썬과 sql 연동이 더 편리하다고 한다.
설치 pip을 통해서 pip install로 간편하게 할 수 있다.
python-mysql-csv read csv 파일 읽어오기
>>> test=[]
>>> import csv
>>> f=open('./kosdaqlist.csv','r')
>>> csvReader=csv.reader(f)
>>> for row in csvReader:
test.append(row)
>>> print test
[['68270'], ['35720'], ['26960'], ['130960'], ['86900'], ['84990'], ['16170'], ['41960'], ['78340'], ['34230'], ['36490'], ['214370'], ['48260'], ['28150'], ['39030'], ['35760'], ['47
성공한걸 볼 수 있다.
>>> test[1]
['35720']
근데 문제가 생겼다.
dbname.tablename 으로 접근을 해야 하는데,
daname.35720을 원했는데,
dbname.['35720'] 이런식으로 접근하고 있었다.
csv 읽어올때 [] 괄호를 없애고 싶다ㅠㅠ
>>> f= open('example.csv','r')
>>> data=f.readlines()
>>> data_s=[]
>>> for i in data:
data_s.append(i[:-1])
a+넘버 로 나와야하는데, 앞에 0을 붙이고 싶다.
>>> str="0089"
>>> str.zfill(6)
'000089'
이렇게 zfill을 통해서 앞에 0을 채워줘서 6자리로 맞추고 싶다.
그런데
>>> while i<len(test):
test[i].zfill(6)
i=i+1
'list' object has no attribute 'zfill'
에러가 나온다.
그렇다 리스트는 받지않는다. 어쩌지 ?
엑셀 - 맨 앞에 0
엑셀에서 파일열어서 원하는 부분 드래그 후
셀 서식 - 사용자지정 a000000 해서 6자리로 맞추어주었다.
>>> conn = pymysql.connect(host='localhost', user='root',password='9999',db='finance',charset='utf8')
>>> curs=conn.cursor()
>>> sql="delete FROM finance.a000020 where date='2000-01-06'"
>>> curs.execute(sql)
>>> conn.commit()
testnum=len(test)
>>> def deleteTest():
i=0
while i < testnum:
curs.execute(sql,test[i])
conn.commit()
i=i+1
일단 디비연결도 성공 ! 삭제되었다!
----
>>> f= open('kospilist.csv','r')
>>> data=f.readlines()
>>> data_s=[]
>>> for i in data:
data_s.append(i[:-1])
>>>import pymysql
>>> conn = pymysql.connect(host='localhost', user='root',password='9999',db='finance',charset='utf8')
>>> curs=conn.cursor()
sql ="delete from finance.%s where date='2000-01-10'"
def Del():
for i in range(0,len(data_s)):
curs.execute(sql,(data_s[i]))
conn.commit()
아...sql ="delete from finance.%s where date='2000-01-10'"
얘 %s만 들어가면 에러난다 ㅡㅡ 아ㅏ...
'OLD개발이야기 > Python-mysql' 카테고리의 다른 글
python-mysql 엑셀 읽기, sql 에 업데이트 하기,( 컬럼별 ) (0) | 2017.03.09 |
---|---|
find null and replace -mysql (0) | 2017.03.09 |
Java 설치 (0) | 2017.02.21 |
mysql table 생성 (0) | 2017.02.19 |
ubuntu - python - mysql 우분투에서 mysql 접속, 서버접속, 파이썬 디비 연결 (0) | 2017.02.12 |