sqlalchemy + mysql

# -*- encoding='utf-8' -*-

from sqlalchemy import Column, String, create_engine, Integer
from sqlalchemy.orm import sessionmaker
from sqlalchemy.ext.declarative import declarative_base
import time
import os


Base = declarative_base()


class Patent(Base):
    __tablename__ = 'patent'
    id = Column(Integer, primary_key=True, autoincrement=True)
    name = Column(String(100))

class Software(Base):
    __tablename__ = 'software'
    id = Column(Integer, primary_key=True, autoincrement=True)
    name = Column(String(100))

class Trademark(Base):
    __tablename__ = 'trademark'
    id = Column(Integer, primary_key=True, autoincrement=True)
    name = Column(String(100))

engine = create_engine('mysql+mysqldb://root@localhost:3306/byb?charset=utf8')
Base.metadata.create_all(engine)    # create table

# DBSession = sessionmaker(bind=engine)

# session = DBSession()

#  insert one record
# new_user = User(name='Bob')
# session.add(new_user)
# session.commit()

#  query
#user = session.query(User).filter(User.id=='6').one()
#print('name', user.name)
#session.close()


# start = time.time()
# engine.execute(User.__table__.insert(), [dict(name='name-{}'.format(i)) for i in range(10000000)])
# duration = time.time() - start
# print(duration)  #  153.53116178512573 s

# with open('/root/Downloads/company/filter_zl.txt', 'r') as f:
    # company = f.readlines()

# with open('/root/Downloads/company/filter_rz.txt', 'r') as f:
    # company = f.readlines()

# with open('/root/Downloads/company/filter_sb.txt', 'r') as f:
    # company = f.readlines()

    # companys = [i.strip() for i in company if len(i.strip())>5]
# print(companys)

# start = time.time()
# engine.execute(Patent.__table__.insert(), [dict(name=i.encode('utf8')) for i in companys])  #  6.922209739685059
# engine.execute(Software.__table__.insert(), [dict(name=i) for i in companys])  #  6.922209739685059
# engine.execute(Trademark.__table__.insert(), [dict(name=i) for i in companys])  #  6.922209739685059
# duration = time.time() - start
# print(duration)  #  153.53116178512573 s

filedir = '/root/Downloads/company/'
for filename in os.listdir(filedir):
    filename = filedir + filename
    with open(filename, 'r') as f:
        company = f.readlines()

        companys = [i.strip() for i in company if len(i.strip())>5]
    if 'zl' in filename:
        engine.execute(Patent.__table__.insert(), [dict(name=i.encode('utf8')) for i in companys])  #  6.922209739685059
    if 'rz' in filename:
        engine.execute(Software.__table__.insert(), [dict(name=i) for i in companys])  #  6.922209739685059
    if 'sb' in filename:
        engine.execute(Trademark.__table__.insert(), [dict(name=i) for i in companys])  #  6.922209739685059

# start = time.time()
# duration = time.time() - start
# print(duration)  #  153.53116178512573 s
原文地址:https://www.cnblogs.com/yugengde/p/8692725.html