Пример #1
0
def main():

    session = create_session(database='CtyOD')
    engine = session.get_bind()
    CtyOD.metadata.drop_all(engine)
    CtyOD.metadata.create_all(engine)
    field_name = [c.name for c in CtyOD.__table__.columns]

    load_string = (
        "LOAD DATA LOCAL INFILE 'ck/{!s}'"
        " INTO TABLE ctyodp4"
        " FIELDS TERMINATED BY ',' LINES TERMINATED BY '\\r\\n'"
        " IGNORE 1 LINES;"
        )

    base_url = "http://cta.ornl.gov/transnet/"
    for idx in range(1, 7):
        
        csv_file = Path('CtyODp4-{}.csv'.format(idx)) 
        archive = Path('ck') / csv_file

        if not archive.exists():
            url = base_url + str(csv_file.with_suffix(".zip"))
            request = Request(url)
            with urlopen(request) as io:
                archive = ZipFile(BytesIO(io.read()))
            archive.extractall()
            
        session.execute(load_string.format(csv_file))
        session.commit()

    session.close()