[GO] Ich habe versucht, das automatische Senden einer E-Mail durch Doppelklicken auf das Symbol [GAS / Python] zu ermöglichen

Zusammenfassung

Dies ist problematisch, da ständig E-Mails gesendet werden. Ich habe beschlossen, es zu automatisieren.

Für die Automatisierung haben wir uns entschieden, eine zu erstellen, die die folgenden Anforderungen erfüllt.

    1. Ich möchte den Sende-Trigger so einstellen, dass anstelle des Timers usw. auf das Desktop-Symbol geklickt wird.
  1. Ich möchte eine bestimmte Datei automatisch anhängen
    1. Ich möchte nur beim Senden einer E-Mail online gehen und sofort nach dem Senden offline gehen

Daher scheint GAS (Google Apps Script) praktisch zu sein, und ich habe keine Erfahrung damit. Ich habe mich für ein Tool mit GAS entschieden, das die oben genannten Anforderungen erfüllt.

Zunächst überlegte ich, ob die oben genannten drei Anforderungen wirklich erfüllt wurden.

Anforderung 1: Ich möchte, dass der Sendeauslöser ein Klick wie ein Desktop-Symbol anstelle eines Timers ist

Soweit ich GAS tatsächlich ein wenig ausprobiert und untersucht habe, ist leider der GAS-Ausführungsauslöser Es schien nur folgendes zu geben.

① Aus der Tabelle ② Zeitgesteuert ③ Aus dem Kalender

Davon (1) Wenn Sie die Details der Triggereinstellungen in der Tabelle überprüfen

· Am Anfang ・ Beim Bearbeiten ・ Zum Zeitpunkt der Änderung ・ Beim Absenden eines Formulars

Ist es nicht möglich, "beim Start" als Auslöser zu verwenden? ich dachte Ausgelöst durch Öffnen einer Tabelle und Versuch, eine E-Mail zu senden Ich habe es mir ausgedacht.

Wenn Sie also eine Tabelle mit GAS in Pythons Selen öffnen, Ich beschloss, es als Auslöser zu verwenden.

... Ich denke, es könnte einen immer einfacheren Weg geben, Das Auslösen eines Tabellenkalkulationsstarts scheint nichts zu schaden. Es gibt auch den Zweck, ein unerfahrenes GAS zu verwenden, also habe ich mich dazu entschlossen.

Ich habe den für die Ausführung von Selenium erforderlichen Chrome-Treiber von der folgenden Seite heruntergeladen. https://sites.google.com/a/chromium.org/chromedriver/downloads

Anforderung 2: Ich möchte eine bestimmte Datei automatisch anhängen

Es stellte sich als überraschend schwierig heraus, dies mit GAS zu tun.

Denn solange die Tabelle auf dem Server vorhanden ist, scheint das GAS-Skript auch auf der Serverseite ausgeführt zu werden, und es scheint schwierig zu sein, die Datei auf dem lokalen PC zu betreiben, der der Client ist.

Aus diesem Grund wusste ich beispielsweise, wie man eine lokale CSV- oder Textdatei liest und dann die in diesen Dateien beschriebenen Informationen extrahiert, aber ich wusste nicht, wie man die lokale Datei in diesem Dateiformat anfügt.

Auf der anderen Seite scheint es einfach zu sein, Dateien auf der Serverseite wie Google Drive anzuhängen.

Aus diesem Grund habe ich beschlossen, die lokale Datei, die ich an Google Drive anhängen möchte, hochzuladen und anzuhängen. Es ist etwas verwirrend, weil es einmal über Google Drive läuft. Wenn jedoch keine Betriebsprobleme vorliegen, ist dies in Ordnung.

Für das Hochladen auf Google Drive scheint Pythons PyDrive praktisch zu sein, daher habe ich mich dafür entschieden.

Ich dachte zuerst an GAS, aber wieder an Python. ..

Anforderung 3: Ich möchte nur beim Senden einer E-Mail online gehen und sofort nach dem Senden offline gehen

Da GAS auf der Serverseite ausgeführt wird, ist es schwierig, sowohl die lokale Umgebung als auch die lokale Datei zu betreiben, und da Python an den obigen Anforderungen 1 und 2 beteiligt ist, dachte ich, dass Anforderung 3 auch in Python implementiert werden würde. Ich dachte leichtfertig, dass es nur ein Paket gibt, mit dem Wi-Fi problemlos verbunden / getrennt werden kann, aber leider konnte ich es nicht finden.

Ich habe jedoch festgestellt, dass PowserShell die Bedienung von Wi-Fi vereinfacht und dass PowerShell-Skripts auch von Python-Seite aus problemlos aufgerufen werden können. Daher habe ich beschlossen, Wi-Fi mit PowerShell auszuführen.

Automatisierungswerkzeugfluss

Ich stellte fest, dass die Anforderungen 1 bis 3 alle realisiert wurden, aber die Mittel zu ihrer Realisierung wurden etwas kompliziert, und so beschloss ich, sie einmal zu organisieren.

キャプチャ.JPG

Die erste Hälfte bis zur Mitte des Prozesses ist wie bereits erwähnt, aber das Problem ist die zweite Hälfte. Wenn Sie GAS starten und eine E-Mail senden, senden Sie die Bestätigung an einen lokal ausgeführten Python und rufen Sie zu diesem Zeitpunkt ein PowerShell-Skript auf, um Wi-Fi zu trennen, es offline zu schalten und den Vorgang abzuschließen. Wie üblich ist es jedoch schwierig, sich mit der lokalen Umgebung zu verbinden, weshalb wir uns entschlossen haben, uns weiter unten damit zu befassen.

    1. Wechseln Sie nach dem Aufrufen der Tabellenkalkulations-URL auf der Python-Seite etwa jede Sekunde zum Google Mail-Posteingang und überprüfen Sie, ob die automatisch gesendeten E-Mails eingegangen sind.
  1. Wenn es eintrifft, wird auf der Python-Seite das Dialogfeld "Senden abgeschlossen" angezeigt.
    1. Wenn die automatisch gesendete E-Mail nicht innerhalb eines bestimmten Zeitraums (ca. 30 Sekunden?) Eintrifft, wird auf der Python-Seite das Dialogfeld "Senden fehlgeschlagen" angezeigt, nachdem Sie auf die URL der Tabelle geklickt haben.

Mit den oben genannten Maßnahmen kann der Benutzer den Erfolg / Misserfolg des Versendens einer E-Mail feststellen.

In diesem Fall frage ich mich, ob es in Ordnung ist, Python für alles zu verwenden. In diesem Fall wird jedoch unter anderem versucht, "ein GAS zu verwenden, das ich noch nie verwendet habe", damit es mit GAS realisiert werden kann. Ich werde für den Teil mit GAS gehen.

Anderes / detailliertes Design

Ich vermisse die Tatsache, dass die Tabelle, die als Auslöser zum Starten von GAS geöffnet wird, wirklich keine andere Rolle als nur einen Auslöser hat, und ich entschied, dass es nicht gut ist, die Zieladresse fest zu codieren, wenn die Anzahl der E-Mail-Ziele in Zukunft zunimmt. Ich habe beschlossen, die Lieferadressen in der Tabelle aufzulisten.

ss.JPG

Schreiben Sie, wie in der Abbildung gezeigt, in der Reihenfolge von Zelle A1 nach unten.

Implementierungsergebnisse

Platzieren Sie das erstellte Python-Skript und das PowerShell-Skript an der entsprechenden Stelle, schreiben Sie GAS wie oben beschrieben, setzen Sie den Auslöser, aktivieren Sie die GoogleDrive-API, legen Sie die Verknüpfung .py auf dem Desktop ab und klicken Sie darauf, um automatisch E-Mails zu senden Du kannst senden. Als Referenz sind die Implementierungsergebnisse wie folgt.

cp.png

Quelle

    1. Python: Hauptteil

auto_mail_tool.py


import os
import time
import email
import imaplib
import datetime
import chromedriver_binary
from selenium import webdriver
from pydrive.auth import GoogleAuth
from pydrive.drive import GoogleDrive
from selenium.webdriver.chrome.options import Options

#Legen Sie die Adresse und das Passwort des Google-Kontos fest
address = 'Mail Adresse'
pw = 'Passwort'


#Öffnen Sie die Tabelle, starten Sie Gas und senden Sie eine E-Mail
def generate_gas_script():

    print('Eine E-Mail senden ...')

    #Kopfloser Start des Browsers(Hintergrundanzeige)Einstellungen für
    option = Options()  #Optionen verfügbar
    option.add_argument('--headless')  #Geben Sie die Einstellung für den Headless-Modus an
    option.add_argument('--lang=ja-JP')

    #Öffnen Sie den Browser, um zu arbeiten
    drv = webdriver.Chrome(options=option)
    time.sleep(3)

    #Öffnen Sie die Seite, um zu arbeiten
    drv.get("URL der Tabelle, die Sie öffnen möchten")

    #Geben Sie die Adresse in die Adressleiste ein
    drv.find_element_by_id('Email').send_keys(address)
    time.sleep(3)

    #Klicken Sie auf die Schaltfläche "Weiter"
    drv.find_element_by_id('next').click()
    time.sleep(3)

    #Passwort eingeben
    drv.find_element_by_id('password').send_keys(pw)
    time.sleep(3)

    #Klicken Sie auf die Schaltfläche "Weiter"
    drv.find_element_by_id('submit').click()
    time.sleep(5)

    drv.quit()  #Die Tabelle sollte geöffnet sein, schließen Sie also den Browser


#Stellen Sie eine Verbindung zu WLAN her/Trennen
def wifi(mode):

    if mode == 'connect':  #Stellen Sie eine Verbindung zum WLAN der angegebenen SSID her (die SSID selbst ist in PowerShell festgelegt).
        os.system('powershell -Command' + ' ' + \
                  'powershell -ExecutionPolicy RemoteSigned .\\wifi_on.ps1')

        time.sleep(5)

    elif mode == 'disconnect':  #Trennen Sie das angeschlossene WLAN

        os.system('powershell -Command' + ' ' + \
                  'powershell -ExecutionPolicy RemoteSigned .\\wifi_off.ps1')


#Laden Sie die Datei, die Sie an die ausgehende E-Mail anhängen möchten, auf Google Drive hoch
def up_file_on_drive():

    #Legen Sie den Pfad und den Dateinamen fest, in dem sich die hochzuladende Datei befindet
    tgtfolder = 'Der Pfad, an den sich die Datei anhängen lässt, die Sie anhängen möchten'
    tgtfile = 'Der Name der Datei, die Sie anhängen möchten'
    dlttgt = 'title = ' + '"' + tgtfile + '"'  #Wird verwendet, um die Datei-ID abzurufen

    #Authentifizierungsprozess für die Verwendung der Google Drive-API
    gauth = GoogleAuth()
    drive = GoogleDrive(gauth)

    #Wenn eine gleichnamige Datei bereits gespeichert ist, löschen Sie sie
    file_id = drive.ListFile({'q': dlttgt}).GetList()[0]['id']
    f = drive.CreateFile({'id': file_id})
    f.Delete()

    time.sleep(3)

    #Datei hochladen
    folder_id = 'Google Drive-Dateispeicher-ID'
    f = drive.CreateFile({'title': tgtfile,
                         'mimeType': 'excel/xlsx',
                         'parents': [{'kind': 'drive#fileLink', 'id':folder_id}]})
    f.SetContentFile(tgtfolder + tgtfile)
    f.Upload()

    time.sleep(3)


#Überprüfen Sie, ob die E-Mail gesendet wurde
def confirm_mail_sent():

    tgtac = imaplib.IMAP4_SSL('imap.gmail.com', 993)  #IMAP-Hostname (Posteingangsserver) und E-Mail-Empfangsportnummer über SSL
    tgtac.login(address, pw)

    waitsec = 30  #Zeitüberschreitungszeit der Bestätigungslogik für die E-Mail-Übertragung[sec]

    tgtmail = 'Senden Sie den auf der GAS-Seite eingestellten "Betreff"' + get_today()

    #Überprüfen Sie jede Sekunde anhand der neuesten E-Mail, ob die automatisch gesendete E-Mail empfangen wird
    for i in range(waitsec, 0, -1):

        title = get_latest_mail_title(tgtac)  #Holen Sie sich den Betreff der neuesten E-Mail

        time.sleep(1)  #1 Schleife 1 Sekunde

        if title == tgtmail:  #Wenn der Betreff der letzten E-Mail der einer automatisch gesendeten E-Mail ist
            print('\n Die automatische E-Mail-Übertragung ist abgeschlossen.\n')
            return

    #Wenn die Bestätigungszeit abgelaufen ist
    print('\n Fehler beim automatischen Senden von E-Mails.\n')


#Holen Sie sich den Betreff der neuesten E-Mail
def get_latest_mail_title(mail):

    mail.select('inbox')  #Mailboxauswahl
    data = mail.search(None, 'ALL')[1]  #Holen Sie sich alle Daten in Ihre Mailbox
    tgt = data[0].split()[-1]  #Holen Sie sich den neuesten Versandhandel
    x = mail.fetch(tgt, 'RFC822')[1]  #E-Mail-Informationen abrufen (geben Sie einen Standard an, der von Google Mail gelesen werden kann)
    ms = email.message_from_string(x[0][1].decode('iso-2022-jp'))  #Perspektive und bekommen

    sb = email.header.decode_header(ms.get('Subject'))
    ms_code = sb[0][1]  #Zeichencode-Erfassung

    #Erhalten Sie nur den Betreff der neuesten E-Mail
    if ms_code != None:
        mtitle = sb[0][0].decode(ms_code)
    else:
        mtitle = sb[0][0]

    return mtitle


#Holen Sie sich das heutige Datum
def get_today():

    now = datetime.date.today()
    tdy = str(now.year) + '/' + str(now.month) + '/' + str(now.day)  #Anzeige nach Datum
    wknum = now.weekday()  #Holen Sie sich die heutige Tagesnummer (0:Mond... 6:Tag)
    wk = get_now_weekday(wknum)  #Holen Sie sich den heutigen Tag

    return tdy + '(' + wk + ')'


#Holen Sie sich den heutigen Tag
def get_now_weekday(key):

    wkdict = {0: 'Mond', 1: 'Feuer', 2: 'Wasser', 3: 'Holz', 4: 'Geld', 5: 'Boden', 6: 'Tag'}
    return(wkdict[key])


if __name__ == '__main__':

    wifi('connect')        # 1.Wi der angegebenen SSID-Fi verbinden
    up_file_on_drive()     # 2.Laden Sie die Datei hoch, die Sie an Google Drive anhängen möchten
    generate_gas_script()  # 3.Öffnen Sie die Tabelle und starten Sie GAS
    confirm_mail_sent()    # 4.Überprüfen Sie, ob die von GAS gesendete E-Mail eingetroffen ist
    wifi('disconnect')     # 5.Trennen Sie das WLAN

    os.system('PAUSE')     #Stoppen Sie die Konsole

  1. GAS: E-Mail senden Teil

sending_email.gs


function mail_send() {
      
  //E-Mail-Informationen festlegen
  var recip = get_recipient(); //Erhalten Sie die E-Mail-Adresse des Empfängers (in der Tabelle aufgeführt)
  var subject  = 'E-Mail Betreff:' + get_nowdate(); 
  var yourname = 'An euch alle';
  var myname   = '○○ Gebühr';
  var body = yourname + '\n\n' + myname + 'ist.\n\n' + 'Ich werde Ihnen heute ○○ senden.\n\Danke für n oder mehr.'
  var filename = 'Der Name der Datei, die Sie anhängen möchten';
  var foldername = 'test'
  var tgtfile = DriveApp.getFilesByName(filename).next();
  const options = {name: '○○ Gebühr', attachments:[tgtfile]};
    
  //E-Mail senden
  GmailApp.sendEmail(recip, subject, body, options);
}

//Rufen Sie die Ziel-E-Mail-Adresse in der Tabelle ab
function get_recipient(){
  //Legen Sie das Zielblatt für die Tabelle fest
  var spdsht = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = spdsht.getActiveSheet();
  
  //Holen Sie sich die Adresse in der ersten Zeile aufgeführt
  var tgtcell = sheet.getRange('A1');
  var rcps = tgtcell.getValue();
  var tgtval = rcps;
  
  //Rufen Sie die in der zweiten und den folgenden Zeilen beschriebene Adresse ab
  for (let i = 2; tgtval != ''; i++)
  {
    tgtcell = sheet.getRange('A' + i);
    tgtval = tgtcell.getValue();
   
    rcps = rcps + ', ' + tgtval;
  }
    
  return rcps;
//  console.log(rcps) //debuggen
}

//Holen Sie sich das heutige Datum (einschließlich Tag)
function get_nowdate()
{
  var da = new Date();

  //Holen Sie sich das heutige Datum
  var y = da.getFullYear();
  var m = da.getMonth() + 1;  //Der Mond-Um mit einem Wert von 1 zu bekommen
  var d = da.getDate();
  
  //Holen Sie sich den heutigen Tag
  var downum = da.getDay(); //Holen Sie sich die Tagesnummer
  var downow = ['Tag', 'Mond', 'Feuer', 'Wasser', 'Holz', 'Geld', 'Boden'][downum]; // 曜Tag番号に対応する曜Tagを選択

  return y + '/' + m + '/' + d + '(' + downow + ')';
}
    1. PowerShell: Für Wi-Fi-Verbindung / Trennung

3-1. Beim Anschließen

wifi_on.ps1


netsh wlan connect name="Wi-Fi, das Sie verbinden möchten-Fi SSID"

3-2. Beim Trennen

wifi_off.ps1


netsh wlan disconnect

Anmerkungen: Wenn Sie .py von MATLAB aus aufrufen möchten

Schreiben Sie mit der Systemfunktion Folgendes in .m.

system('Willst du rennen.py Pfad')

Andere / Gedanken

-Das Öffnen des Browsers zum Öffnen der Tabelle mit Selen erfolgt kopflos. Aus irgendeinem Grund wurde beim Starten ohne Kopf ein anderer Bildschirm angezeigt als ohne, und ich litt ein wenig. (Die Tatsache, dass der Bildschirm anders ist, wurde durch Screenshot mit save_screenshot entdeckt.)   Das Obige ist schließlich das Ergebnis der Aufteilung auf verschiedene Bildschirme.

Referenz: https://teratail.com/questions/276976

・ Ich frage mich, ob GAS keine Funktion hat, die dem interaktiven Modus von Python entspricht. .. Ich denke, es wäre sehr praktisch, wenn es einen gäbe.

Informationen, die als Referenz verwendet wurden

Insbesondere war ich den folgenden Seiten verpflichtet. Vielen Dank.

Inhalt Linkziel
Mail per GAS senden https://tonari-it.com/gas-gmail-sendemail/
Einstellung des GAS-Ausführungsauslösers https://takakisan.com/gas-trigger-introduction/
Holen Sie sich Datum und Tag mit GAS http://www.googleappsscript.info/2017-07-27/get_now.html
Greifen Sie mit GAS auf Tabellenkalkulationen zu https://qiita.com/negito6/items/c64a7a8589faaffcfdcf
Hängen Sie eine Datei an, wenn Sie eine E-Mail mit GAS senden https://qiita.com/tanaike/items/94c263d3906ee23ad522 https://news.mynavi.jp/article/gas-11/
GAS+Laden Sie Dateien mit HTML auf Google Drive hoch https://officeforest.org/wp/2018/12/30/google-apps-script%E3%81%A7%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%A2%E3%83%83%E3%83%97%E3%83%AD%E3%83%BC%E3%83%80%E3%82%92%E4%BD%9C%E3%82%8B/ https://tonari-it.com/gas-web-app-google-script-run/ https://www.pre-practice.net/2018/01/google-drive.html
Laden Sie Dateien mit PyDrive auf Google Drive hoch https://note.nkmk.me/python-pydrive-download-upload-delete/ https://qiita.com/akabei/items/f25e4f79dd7c2f754f0e
PowerShell-Skript von Python (.ps1) aufrufen https://tkstock.site/2019/10/07/python-powershell-shellscript-activate/
Verbinden / Trennen mit WLAN über PowerShell https://qiita.com/mindwood/items/22e0895473578c4e0c7e http://wgg.hatenablog.jp/entry/20161111/1478846489
Löschen Sie Dateien auf Google Drive https://note.nkmk.me/python-pydrive-download-upload-delete/
Erhalten Sie mit imaplib Informationen zu eingehenden E-Mails in Google Mail https://py.minitukuc.com/2017/11/07/gmailhonbun/
Stammfenster ausblenden, wenn Sie das Tkinter-Dialogfeld verwenden https://stackoverflow.com/questions/1406145/how-do-i-get-rid-of-python-tkinter-root-window
Wie man Selen kopflos startet https://watlab-blog.com/2019/08/18/selenium-chrome-background/ https://qiita.com/memakura/items/20a02161fa7e18d8a693
Screenshot zum Debuggen von Selenium Headless Boot https://qiita.com/orangain/items/6a166a65f5546df72a9d
Fehlerbehandlung beim Starten von Selen ohne Kopf https://qiita.com/yukanashi/items/c7e954130029fe708b79

letzte

Wir freuen uns über Ihre Vorschläge, Verbesserungsvorschläge und Fehlervorschläge. Bitte zögern Sie nicht. Ich freue mich sehr, die Lotterie 100.000 Yen zu gewinnen.

Recommended Posts

Ich habe versucht, das automatische Senden einer E-Mail durch Doppelklicken auf das Symbol [GAS / Python] zu ermöglichen
Ich habe versucht, das automatische Senden einer E-Mail durch Doppelklicken auf das Symbol [Python] zu ermöglichen
Geben Sie den Bericht mit Python aus DB in PDF aus, hängen Sie ihn automatisch an eine E-Mail an und senden Sie ihn
So senden Sie automatisch E-Mails mit Anhängen mithilfe der Google Mail-API in Python
Ich habe versucht, die Literatur des neuen Corona-Virus mit Python automatisch an LINE zu senden
Es wird kalt, also habe ich versucht, das automatische Ein- und Ausschalten der Klimaanlage mit Raspberry Pi zu ermöglichen!
[Python] Einfaches Japanisch ⇒ Ich habe versucht, ein englisches Übersetzungswerkzeug zu erstellen
Ich habe versucht, mit Python + OpenCV eine Bildähnlichkeitsfunktion zu erstellen
[Python] Ich habe versucht, den kollektiven Typ (Satz) auf leicht verständliche Weise zusammenzufassen.
Als ich versuchte, Python auszuführen, wurde ich zum Microsoft Store übersprungen
[Zaif] Ich habe versucht, den Handel mit virtuellen Währungen mit Python zu vereinfachen
Ich habe versucht, die Neujahrskarte selbst mit Python zu analysieren
Ich habe versucht, ein System zu erstellen, um den Programmführer automatisch zu erfassen → ihn an einem Tag im Kalender zu registrieren
Ich habe versucht, durch Schaben ein Bild zu bekommen
Senden Sie eine E-Mail mit Python an Spushis Adresse
Ich habe versucht, das Datetime-Modul von Python zu verwenden
Ich habe versucht, eine E-Mail mit SendGrid + Python zu senden
Ich habe mein Bestes versucht, um eine Optimierungsfunktion zu erstellen, aber es hat nicht funktioniert.
[Einführung] Ich habe versucht, es selbst zu implementieren, während ich den Dichotomiebaum erklärte
Ich habe versucht, das Telefon klingeln zu lassen, als es auf dem IoT-Post veröffentlicht wurde
Ein Python-Anfänger versuchte, bei einem IT-Unternehmen zu praktizieren [Tag 3 in die Wolken ...]
Python-Anfänger haben einen Chat-BOT erstellt, also habe ich versucht, zusammenzufassen, wie man es macht
[Einführung] Ich habe versucht, es selbst zu implementieren, während ich erklärte, um die Dichotomie zu verstehen
Ich habe versucht, es einfach zu machen, die Einstellung des authentifizierten Proxys auf Jupyter zu ändern
Ich habe versucht, die in Python installierten Pakete grafisch darzustellen
Ich habe versucht, eine CSV-Datei mit Python zu berühren
Ich habe versucht, Soma Cube mit Python zu lösen
Fortsetzung ・ Ich habe versucht, Slackbot zu erstellen, nachdem ich Python3 studiert habe
Ich habe versucht, künstliches Perzeptron mit Python zu implementieren
[Python] Ich habe versucht, die Top 10 der Lidschatten grafisch darzustellen
Ich habe versucht, das Problem mit Python Vol.1 zu lösen
Ich möchte automatisch eine Unternehmensgründungs-E-Mail senden
Ich habe versucht, eine OCR-App mit PySimpleGUI zu erstellen
Ich habe versucht, die String-Operationen von Python zusammenzufassen
Django super Einführung von Python-Anfängern! Teil 6 Ich habe versucht, die Login-Funktion zu implementieren
[Python] Ich habe versucht, mit tkinter eine Anwendung zu erstellen, die das Gehalt anhand der Arbeitszeit berechnet
Ich habe versucht, eine RESTful-API zu erstellen, indem ich die explosive Fast-API des Python-Frameworks mit MySQL verbunden habe.
Ich habe versucht, das Masami-Broadcast-Video wie IPPON Grand Prix (OpenCV: Python-Version) zu machen.
Ich habe versucht, die Entropie des Bildes mit Python zu finden
Ich habe versucht zu simulieren, wie sich die Infektion mit Python ausbreitet
Ich habe versucht, mit Python faker verschiedene "Dummy-Daten" zu erstellen
Ich habe verschiedene Methoden ausprobiert, um japanische Post mit Python zu senden
Ich habe versucht, mit Python eine E-Mail von Amazon SES zu senden
Code zum Senden von E-Mails basierend auf der Excel-E-Mail-Liste
[Python] Ich habe versucht, die folgende Beziehung von Twitter zu visualisieren
Ich habe versucht, die Mail-Sendefunktion in Python zu implementieren
Ich habe versucht, die Unterschiede zwischen Java und Python aufzuzählen
Ich habe eine Stoppuhr mit tkinter mit Python gemacht
Ich habe versucht, die Benutzeroberfläche neben Python und Tkinter dreiäugig zu gestalten
Ich habe versucht, das Python-Skript unter Windows 10 von 2.7.11 auf 3.6.0 zu ändern
Python-Anfänger versuchte, bei einem IT-Unternehmen zu praktizieren
Ich habe versucht, eine Site zu erstellen, mit der die aktualisierten Informationen von Azure einfach angezeigt werden können
Ich habe versucht, die Sprecheridentifikation mithilfe der Sprechererkennungs-API von Azure Cognitive Services mit Python zu überprüfen. # 1
Ich habe versucht, die Sprecheridentifikation mithilfe der Sprechererkennungs-API von Azure Cognitive Services in Python zu überprüfen. # 2
Ich habe versucht, den Unterschied zwischen A + = B und A = A + B in Python herauszufinden
Ich habe versucht, den Inhalt jedes von Python pip gespeicherten Pakets in einer Zeile zusammenzufassen