Dies ist der erste Beitrag des Adventskalenders. Da der Python-Frame geöffnet war, werde ich einen Fall veröffentlichen, wenn ich Angst habe.
Klicken Sie hier für den vorherigen Artikel → So erhalten Sie Wetterinformationen mit LINE Notify + Python
Bereits im Dezember dieses Jahres. Dezember ist Weihnachten, aber es ist auch Zeit, eine Neujahrskarte vorzubereiten.
Als ich darüber nachdachte, eine Neujahrskarte auszustellen, kannte ich die Adresse, aber wie lautete die Postleitzahl ...? Denkst du das jemals? (Und umgekehrt)
Wenn Sie nun eine Google-Suche nach der Adresse durchführen, erhalten Sie die Postleitzahl. Ich wünschte, es gäbe ein Tool, das ohne Internetumgebung nach Adressen und Postleitzahlen suchen könnte. Nachdem ich Python beherrscht hatte, machte ich eine einfache Konsolen-App.
Es gibt einige Fälle, in denen nach einer Adresse per Postleitzahl gesucht wird. Ich dachte nicht, dass es viele Fälle gab, in denen nach einer Postleitzahl von einer Adresse aus gesucht wurde, also habe ich in beiden Fällen versucht, damit umzugehen.
・ Mac OS Mojave ・ Python3 ・ Pyinstaller
Das Flussdiagramm ist wie folgt. Möchten Sie grundsätzlich die Adresse der von Ihnen eingegebenen Postleitzahl ausgeben? Das Format ist so, dass der Benutzer interaktiv auswählen kann, ob die der eingegebenen Adresse entsprechende Postleitzahl ausgegeben werden soll (nur einige Ortsnamen sind zulässig).
Ich lade "KEN_ALL.CSV" von der Download-Seite für Postleitzahlendaten von der Webseite der Post herunter und lege sie direkt unter / Users / ab, um sie zu lesen.
https://www.post.japanpost.jp/zipcode/download.html
FindAddress_for_Mac.py
import sys
# Set Path including "KEN_ALL.CSV" for Mac OS X
csv_path = "/Users/KEN_ALL.CSV"
def GetAddress():
postal_code = input("Type target postal code:")
fp = open(csv_path, "r", encoding="shift_jis")
for line in fp:
line = line.replace(' ', '') # cut space
line = line.replace('"', '') # cut double quatation
cells = line.split(",") # split by comma
code = cells[2] # Postal code
pref = cells[6] # Prefucture
city = cells[7] # City name
ad = cells[8] # Address name
title = pref + city + ad
if code.find(postal_code) != -1:
print(title)
fp.close()
def GetPostalCode():
addr = input("Type target address:")
fp = open(csv_path, "r", encoding="shift_jis")
for line in fp:
line = line.replace(' ', '') # cut space
line = line.replace('"', '') # cut double quatation
cells = line.split(",") # split by comma
code = cells[2] # Postal Code
pref = cells[6] # Prefucture
city = cells[7] # City name
ad = cells[8] # Address name
title = pref + city + ad
if title.find(addr) != -1:
print(code + ":" + title)
fp.close()
def main():
print("\n")
print("####################################################")
print("################### FINDADDRESS ####################")
print("####################################################")
print("\n")
print("[DISCRIPTION]")
print(" This tool is to get address or postal code.")
print(" If you type '1', you can get unknown address by typing postal code.")
print(" If you type '2', you can get unknown postal code by typing KEYWORD about address name.")
print("\n")
while True:
print("[OPERATION]")
print("input the following number which you want to get.")
number = input("[1:Address 2:PostalCode 99 (or SPACE):Close]:")
if number.isdigit() != 1: # Filter non-integer value
sys.exit()
int_number = int(number) # Convert String to Integer
if int_number == 1: # The case that user types "1"
GetAddress()
print("\n")
elif int_number == 2: # The case that user types "2"
GetPostalCode()
print("\n")
elif int_number == 99: # The case that user types "99"
sys.exit()
else: # Exception handling
print("Invalid Number. Type again.")
print("\n")
if __name__ == "__main__":
main()
In diesem Artikel finden Sie Informationen zum Verfahren der Exe-Konvertierung.
Erstellen Sie mit PyInstaller eine exe-Datei https://qiita.com/takanorimutoh/items/53bf44d6d5b37190e7d1
Lassen Sie uns als Beispiel nach der Adresse und Postleitzahl von Shinkiba in Koto-ku, Tokio, suchen.
Wenn Sie bei der Adressensuche von 1 die Postleitzahl "1360082" eingeben, die Adresse von Shinkiba "Shinkiba, Koto-ku, Tokio" wird abgeladen. Wenn Sie das Adressschlüsselwort "Shinkiba" in die Postleitzahlensuche in 2 eingeben, werden die Postleitzahlen und Adressen aller Adressen, die die Zeichen von Shinkiba enthalten, als Satz ausgegeben.
Stellen Sie vor der Verwendung sicher, dass die Shell-Exit-Einstellung in den Terminaleinstellungen auf "Fenster schließen" eingestellt ist. Wenn Sie dies nicht tun, bleibt die Konsole nach dem Schließen der App erhalten.
Wenn ich Zeit habe, werde ich in Zukunft versuchen, eine mit Windows und Linux kompatible Version zu implementieren.
Recommended Posts