python 은 엑셀 을 읽 고 my sql 에 기록 하 는 작은 도 구 를 상세 하 게 설명 합 니 다.
Python 을 이용 하여 데이터 분석 을 하 는데 첫 번 째 단 계 는 일상 업무 에서 각종 엑셀 보고 서 를 읽 고 데이터 에 저장 하 는 방법 을 배 워 서 후속 데이터 처 리 를 편리 하 게 하 는 것 입 니 다.
python 이 excel 을 어떻게 읽 는 지 공유 하고 Python 을 사용 하여 Mysql 에 데 이 터 를 저장 합 니 다.필요 한 친구 들 이 함께 보 세 요.
배경
전국 대학 명 록 을 데이터 베이스 로 가 져 와 야 합 니 다.교육위원회 사이트 에서 최신 데이터 로 내 려 왔 습 니 다.엑셀 형식 입 니 다.도 구 를 만들어 가 져 와 야 합 니 다.python 을 사용 해 보고 싶 습 니 다.말 하면 하 겠 습 니 다.
창고.
소스 코드
아주 간단 한 작은 각본 으로 기념 으로 남 겨 두다.주의해 야 할 점 은 데이터베이스 연결 필드 문자열 에 문자 인 코딩 을 설정 해 야 합 니 다.그렇지 않 으 면 기본적으로 lanti-1 입 니 다.기록 하 는 중 오류 가 발생 할 수 있 습 니 다.
import xlrd
import pymysql
import re
conn = pymysql.connect(host='database connect address', port=1234, user='root',
passwd='****', db='database name', charset='utf8mb4')
p = re.compile(r'\s')
data = xlrd.open_workbook('./W020170616379651135432.xls')
table = data.sheets()[0]
t = table.col_values(1)
nrows = table.nrows
for i in range(nrows):
r1 = table.row_values(i)
if len(r1[2]) == 10:
cur = conn.cursor()
cur.execute('insert into `university` (`id`, `name`, `ministry`, `city`, `level`, `memo`) \
values (%s, %s, %s, %s, %s, %s)',
(r1[2], p.sub('', r1[1]), p.sub('', r1[3]), p.sub('', r1[4]), r1[5], r1[6]))
conn.commit()
cur.close()
conn.close()
심득클래스 C 의 언어 에 익숙해 져 서 python 에 익숙 하지 않 습 니 다.두 가지 스타일 의 프로 그래 밍 언어 를 동시에 익히 려 면 너무 고 통 스 럽 습 니 다.python 프로 그래 밍 효율 이 정말 좋 습 니 다.이것 은 제 가 처음으로 python 으로 실 용적 인 애플 릿 을 쓴 것 입 니 다.테이프 테스트 까지 모두 한 시간 이 걸 렸 습 니 다.python 라 이브 러 리 와 자료 가 풍부 하여 적당 한 것 을 찾 지 못 할 까 봐 걱정 하지 않 습 니 다^ ^
데이터베이스 기록 최적화
아침 에 한가 해서 대량 기록 으로 최 적 화 했 습 니 다.작업 초 완성 은 한 줄 한 줄 기록 하 는 것 보다 훨씬 빠 르 고 제 가 예상 한 것 보다 차이 가 큽 니 다.보아하니,나 쁜 공 구 는 없 는 것 같다.다만 우 리 는 좋 은 공 구 를 사용 하지 않 았 을 뿐이다!
import xlrd
import pymysql
import re
conn = pymysql.connect(host='database connect address', port=1234, user='root',
passwd='****', db='database name', charset='utf8mb4')
p = re.compile(r'\s')
data = xlrd.open_workbook('./W020170616379651135432.xls')
table = data.sheets()[0]
t = table.col_values(1)
nrows = table.nrows
ops = []
for i in range(nrows):
r1 = table.row_values(i)
if len(r1[2]) == 10:
ops.append((r1[2], p.sub('', r1[1]), p.sub('', r1[3]), p.sub('', r1[4]), r1[5], r1[6]))
cur = conn.cursor()
cur.executemany('insert into `university_copy` (`id`, `name`, `ministry`, `city`, `level`, `memo`) \
values (%s, %s, %s, %s, %s, %s)', ops)
conn.commit()
cur.close()
conn.close()
질문1.mac 에 xlrd 모듈 을 설치 합 니 다.cmd 에서 pip install xlrd 를 실행 하지 못 하면 홈 페이지 에 직접 다운로드 할 수 있 습 니 다.이름 이 이와 같은 파일 xlrd-1.0.0-py3-none-any.whl 입 니 다.다운로드 한 파일 경로 로 전환 하여 cmd 에서 pip 3 install xlrd-1.0.0-py3-none-any.whl 을 실행 하면 됩 니 다.
http://pypi.python.org/pypi/xlrd
2.python 엑셀 신문 열기
xlrd.biffh.XLRDError: Unsupported format, or corrupt file: Expected BOF record; found b'username'
열 려 있 는 엑셀 저장 시 호환성 등 형식 알림 이 있 는 지 확인 할 수 있 습 니 다.있 으 면 형식 문제 가 없 는 파일 을 다시 만들어 야 합 니 다.
import xlrd
from os.path import join,abspath,dirname
fname = join(dirname(dirname(abspath(__file__))),'test1.xls')
bk = xlrd.open_workbook(fname, encoding_override="utf-8")
shxrange = range(bk.nsheets)
try:
sh = bk.sheet_by_name(" 1")
#
nrows = sh.nrows
#
ncols = sh.ncols
print("nrows %d, ncols %d" % (nrows, ncols))
#
cell_value = sh.cell_value(1, 1)
# print cell_value
row_list = []
#
for i in range(0, nrows):
row_data = sh.row_values(i)
row_list.append(row_data)
except:
print("no sheet in %s named Sheet1" % fname)
총결산이상 은 이 글 의 전체 내용 입 니 다.본 논문 의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 참고 학습 가치 가 있 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 댓 글 을 남 겨 주 셔 서 저희 에 대한 지지 에 감 사 드 립 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
로마 숫자를 정수로 또는 그 반대로 변환그 중 하나는 로마 숫자를 정수로 변환하는 함수를 만드는 것이었고 두 번째는 그 반대를 수행하는 함수를 만드는 것이었습니다. 문자만 포함합니다'I', 'V', 'X', 'L', 'C', 'D', 'M' ; 문자열이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.