Es ist einfach, SQL mit Python auszuführen und das Ergebnis in Excel auszugeben

Ich habe vor kurzem angefangen, Python zu studieren Ich dachte, es wäre einfacher, SQL mit Python auszuführen und das Ergebnis in Excel auszugeben, also fasste ich es zusammen.

Es sind ungefähr 50 Codezeilen.

Dinge die zu tun sind

  1. Führen Sie SQL im SQL-Ordner in der Reihenfolge mit Python aus
  2. Excel-Ausgabe des SQL-Ausführungsergebnisses mit demselben Dateinamen wie SQL
  3. Stellen Sie Excel in ZIP zusammen
  4. Legen Sie es auf den Dateiserver

Versuchte Umgebung

Vorbereitung

Quelle / Ausführen

import mysql.connector
import datetime
import glob
import os
import pandas as pd
import csv
import pyminizip
import pathlib
import shutil

def exec():

    # 1.SQL-Ausführung in Python------------------------------------

    #DB-Verbindung
    conn = mysql.connector.connect(
       host = 'Gastgeber',
       port = 'Hafen',
       user = 'Nutzer',
       password = 'Passwort',
       database = 'Datenbank' 
    )    
        
    #SQL-Datei abrufen
    os.chdir("SQL-Ordner")
    sql_file_list = glob.glob("*.sql")
    
    #Ordner erstellen
    now = datetime.datetime.now().strftime('%Y%m%d%H%M%S')
    os.mkdir(now)

    #SQL-Ausführung
    for sql_file in sql_file_list:

        print(sql_file)        

        with open(sql_file, 'r') as f:
            sql_query = f.read()
    
        df = pd.read_sql_query(sql_query, con=conn) 

     # 2.Geben Sie das Ergebnis in Excel aus------------------------------------

        #Für die Excel-Ausgabe
        df.to_excel(now + "\\" + sql_file.replace('.sql', '.xlsx'), sheet_name=sql_file.replace('.sql', ''), index=False)
            
        #Für die CSV-Ausgabe
        df.to_csv(now + "\\" + sql_file.replace('.sql', '.csv'), encoding="utf-8_sig", quoting=csv.QUOTE_NONNUMERIC, index=False)

    os.chdir(now)
        
    #Wenn es eine individuelle Bearbeitung gibt, werde ich es hier tun

    #Ergebnisdatei abrufen
    result_file_list = glob.glob("*.xlsx")    

    # 3.Machen Sie es ZIP------------------------------------

    #Ergebnisdateikomprimierung(Japanischer Dateiname wird nicht unterstützt)
    file_path = []
    for i in range(len(result_file_list)):
        file_path.append('\\') 
    
    pyminizip.compress_multiple(result_file_list,file_path, now + '.zip','pass',0)
            
    # 4.Legen Sie den Dateiserver an------------------------------------

    #Hochladen der Ergebnisdatei
    share = pathlib.WindowsPath(r'Dateiserver' + now + '.zip')
    shutil.copyfile(now + '.zip', share)
            
    #Trennen
    conn.close()

#Lauf
exec()

Recommended Posts

Es ist einfach, SQL mit Python auszuführen und das Ergebnis in Excel auszugeben
Rufen Sie die Excel-Liste rekursiv in einem bestimmten Ordner mit Python ab und schreiben Sie sie in Excel.
Führen Sie Raw SQL mit Redash unter Verwendung der Python-Datenquelle aus und zeigen Sie das Ergebnis an
So geben Sie eine Zeichenfolge in Python ein und geben sie unverändert oder in die entgegengesetzte Richtung aus.
[Mac] Eine supereinfache Möglichkeit, Systembefehle in Python auszuführen und die Ergebnisse auszugeben
Eine einfache Möglichkeit, die in Python benötigte Zeit anzuzeigen und sie intelligenter zu verbessern
Geben Sie den Inhalt von ~ .xlsx im Ordner mit Python in HTML aus
Konvertieren Sie das Ergebnis von Python Optparse, um es zu diktieren und zu verwenden
Verwendung ist und == in Python
[Python] Süß Ist es süß? Über Suiten und Ausdrücke in offiziellen Dokumenten
Extrahieren Sie das Ergebnis des TOP-Befehls mit USER und geben Sie es als CSV aus
Einfache Serverüberwachung mit AWS Lambda (Python) und Ergebnisbenachrichtigung mit Slack
Ich habe Umgebungsvariablen in Docker festgelegt und in Python angezeigt.
Lesen Sie die CSV-Datei mit Python und konvertieren Sie sie unverändert in DataFrame
Über den Unterschied zwischen "==" und "is" in Python
[Python] So benennen Sie Tabellendaten und geben sie mit csv aus (to_csv-Methode)
Verwenden Sie libsixel, um Sixel in Python auszugeben und das Matplotlib-Diagramm an das Terminal auszugeben.
(Tagebuch 1) Erstellen, Durchsuchen und Registrieren von Daten in der SQL-Datenbank des Microsoft Azure-Dienstes mit Python
Eine Geschichte über einen Ingenieur, der das Emo der Kryptographie bemerkt hat und versucht, es in Python zu implementieren
Prozedur zum Laden von MNIST mit Python und zur Ausgabe an png
Konvertieren Sie das Bild in .zip mit Python in PDF
Mit Python psycopg2 erhalten Sie Ergebnisse im Diktatformat
Lesen Sie die json-Datei mit Python, formatieren Sie sie und geben Sie json aus
[Python] So geben Sie Listenwerte der Reihe nach aus
Verwenden Sie tkinter, um den Ausgabecode in Python als "A und vorgeben, B zu sein" zu verschieben
Das Ergebnis der Erstellung eines Kartenalbums italienischer Jungvermählten in Python und dessen Weitergabe
Geben Sie für jede Datei die angegebene Tabelle der Oracle-Datenbank in Python in Excel aus
Einfache Verwendung der Nifty Cloud API mit Botocore und Python
Versuchen Sie es mit GUI, PyQt in Python
Immerhin ist es falsch, mit Python-Subprozess zu katzen.
Geben Sie "Farn programmgesteuert zeichnen" in den Zeichenprozess in Python ein
Ändern Sie das Standardausgabeziel in eine Datei in Python
In Python werden die Elemente in der Liste sortiert und als Elemente und Vielfache ausgegeben.
Tipps zum Codieren kurz und einfach in Python zu lesen
Einfach mit nur Python! Geben Sie Graphviz-Zahlen im draw.io-Format aus!
Objektorientiert in C-Sprache: "○ ✕ game" wurde überarbeitet und nach Python portiert
Ausführen externer Shell-Skripte und -Befehle in Python
Installieren Sie CaboCha in der Ubuntu-Umgebung und rufen Sie es mit Python auf.
So melden Sie sich mit Python bei AtCoder an und senden automatisch
Ich habe eine Klasse erstellt, um das Analyseergebnis von MeCab in ndarray mit Python zu erhalten
[Super einfach! ] So zeigen Sie den Inhalt von Wörterbüchern und Listen einschließlich Japanisch in Python an
Es war großartig, die Python-Datei in Raspberry Pi mit der Remote-Funktion von Atom zu bearbeiten
Geben Sie die Bilddaten mit Flask of Python zurück und zeichnen Sie sie in das Canvas-Element von HTML
Ich habe auch versucht, die Funktionsmonade und die Zustandsmonade mit dem Generator in Python nachzuahmen
Wenn Sie ein Argument in die Abschlussfunktion einfügen und später ausführen möchten
[Python] Was ist ein Tupel? Erklärt, wie man es benutzt und wie man es benutzt, ohne zu tippen.
Setzen Sie Ubuntu in Raspi ein, setzen Sie Docker darauf und steuern Sie GPIO mit Python aus dem Container
[VLC] Wie man mit dem Problem umgeht, dass es während der Wiedergabe nicht im Vordergrund steht
Eine einfache Möglichkeit, die Amazon-Produkt-API in Python aufzurufen
Wie ist der Fortschritt? Lassen Sie uns mit dem Boom in Python weitermachen
Verarbeitung zur Verwendung von notMNIST-Daten in Python (und versucht, sie zu klassifizieren)
Wenn im Python-Wörterbuch auf einen nicht vorhandenen Schlüssel zugegriffen wird, initialisieren Sie ihn mit einem beliebigen Wert
So installieren Sie OpenCV in Cloud9 und führen es in Python aus
Unterschied zwischen == und ist in Python
Einfache Möglichkeit, nach dem Dezimalpunkt in Python3 abzurunden
Ich möchte APG4b mit Python lösen (nur 4.01 und 4.04 in Kapitel 4)