Domanda:
Biblioteca che indica il paese dal numero di telefono
Nicolas Raoul
2014-07-11 13:02:26 UTC
view on stackexchange narkive permalink

Ho migliaia di numeri di telefono come +27823374587

Esiste una libreria o un programma a riga di comando in grado di indicarmi il paese?

Ad esempio: +27823374587 Sud Africa

Requisiti:

  • Funziona offline
  • Gratis, idealmente open source
  • Qualsiasi sistema operativo o linguaggio di programmazione va bene
Due risposte:
#1
+4
Steve Barnes
2014-07-11 13:10:00 UTC
view on stackexchange narkive permalink

Ci sono un paio di librerie python che possono farlo python-phonenumbers analizzerà vari formati per ottenere il codice del paese.

  • & Open Source gratuito.
  • Funziona offline
  • Sistema operativo & multipiattaforma
  • Python 2.5-2.7 & 3.x
  • Python puro quindi non è necessario il compilatore C.

Sulla base degli esempi da quella pagina e utilizzando ipython:

  In [1]: import phonenumbersIn [2]: from phonenumbers import geocoderIn [3]: query = phonenumbers.parse ("+ 27823374587", Nessuno) In [4]: ​​print repr (geocoder.description_for_number (query, "en"))  

u'South Africa "

Bella libreria, sembra che faccia il 90% del lavoro: "+27823374587" → "+27". Immagino di poter scrivere il codice di mappatura per renderlo "+27823374587" → "Sud Africa" ​​ma se esiste già una libreria che fa il tutto sarebbe fantastico :-)
@NicolasRaoul - Sì, ho aggiunto un esempio alla risposta sopra. * (Ce n'era uno sulla pagina ma immagino sia andato perso nei dettagli). *
#2
+2
jm666
2014-07-12 00:27:56 UTC
view on stackexchange narkive permalink

Ovviamente puoi anche usare la libreria pure-perl.

Ecco uno script funzionante:

  #! / usr / bin / env perluse 5.014; use warnings; usa Numero :: Telefono :: Paese; usa Locale :: Paese; per il mio $ arg (@ARGV) {# ottieni il codice paese ISO e IDD dal numero my ($ iso_cc, $ idd) = Numero :: Telefono :: Paese :: phone2country_and_idd ($ arg); a meno che ($ iso_cc) {warn "Bad phone number $ arg"; Il prossimo; } dì "Telefono: $ arg"; dire "Codice ISO: $ iso_cc"; dire "Composizione diretta internazionale: $ idd"; # prendi il nome del paese dal codice ISO my $ country = code2country ($ iso_cc); dì "Country name: $ country \ n";}  

Se lo esegui come:

  perl nome script "+1 302 1234567" +421905905905  

uscite:

  Telefono: +1 302 1234567 Codice ISO: US Composizione diretta internazionale: 1 Nome paese: Stati Uniti Telefono: + 421905905905 Codice ISO: SK Composizione diretta internazionale: 421 Nome paese : Slovacchia  

Lo script utilizza due moduli perl:



Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 3.0 con cui è distribuito.
Loading...