Spørgsmål:
Bibliotek, der fortæller land fra telefonnummer
Nicolas Raoul
2014-07-11 13:02:26 UTC
view on stackexchange narkive permalink

Jeg har tusind telefonnumre som +27823374587

Er der et bibliotek eller et kommandolinjeprogram, der kan fortælle mig landet?

For eksempel: +27823374587 Sydafrika

Krav:

  • Kører offline
  • Gratis, ideelt open source
  • Ethvert operativsystem eller programmeringssprog er fint
To svar:
Steve Barnes
2014-07-11 13:10:00 UTC
view on stackexchange narkive permalink

Der er et par pythonbiblioteker, der kan gøre dette python-telefonnumre vil analysere forskellige formater for at få landekoden.

  • Gratis & Open Source.
  • Fungerer offline
  • & OS på tværs af platforme
  • Python 2.5-2.7 & 3.x
  • Ren Python, så ingen C-kompilator er nødvendig.

Baseret på eksemplerne fra den pågældende side og ved hjælp af ipython:

  I [1]: importer telefonnumreIn [2]: fra telefonnumre importerer geocoderIn [3]: forespørgsel = phonenumbers.parse ("+ 27823374587", Ingen) I [4]: ​​print repr (geocoder.description_for_number (forespørgsel, "en"))  

u'S Sydafrika '

Dejligt bibliotek, det ser ud til at gøre 90% af jobbet: "+27823374587" → "+27". Jeg antager, at jeg kunne skrive kortlægningskode for at gøre det "+27823374587" → "Sydafrika", men hvis der allerede er et bibliotek, der gør det hele, ville det være godt :-)
@NicolasRaoul - Det gør det - jeg har tilføjet et eksempel på svaret ovenfor. * (Der var en på siden, men jeg gætter på, at den gik tabt i detaljerne). *
jm666
2014-07-12 00:27:56 UTC
view on stackexchange narkive permalink

Du kan naturligvis også bruge pure-perl-bibliotek.

Her er et fungerende script:

  #! / usr / bin / env perluse 5.014; brug advarsler; brug nummer :: telefon :: land; brug landestandard :: land; til min $ arg (@ARGV) {# få ISO-landekode og IDD fra nummeret my ($ iso_cc, $ idd) = nummer :: telefon :: land :: phone2country_and_idd ($ arg); medmindre ($ iso_cc) {advarer "Dårligt telefonnummer $ arg"; Næste; } sig "Telefon: $ arg"; sig "ISO-kode: $ iso_cc"; sig "International direkte opkald: $ idd"; # få landnavnet fra ISO-koden mit $ land = code2country ($ iso_cc); sig "Landnavn: $ country \ n";}  

Hvis du kører det som:

  perl scriptname "+ 1302 1234567" +421905905905  

udgange:

  Telefon: +1302 1234567ISO Kode: US International direkte opkald: 1Landets navn: USA Telefon: + 421905905905ISO Kode: SK International direkte opkald: 421 Landnavn : Slovakiet  

Scriptet bruger to perl-moduler:



Denne spørgsmål og svar blev automatisk oversat fra det engelske sprog.Det originale indhold er tilgængeligt på stackexchange, som vi takker for den cc by-sa 3.0-licens, den distribueres under.
Loading...