Tengo mil números de teléfono como+27823374587
¿Hay una biblioteca o un programa de línea de comandos que pueda decirme el país?
Por ejemplo: +27823374587
→South Africa
Requisitos:
Hay un par de bibliotecas de python que pueden hacer esto python-phonenumbers analizará varios formatos para obtener el código de país.
Basado en los ejemplos de esa página y usando ipython:
In [1]: import phonenumbers
In [2]: from phonenumbers import geocoder
In [3]: query = phonenumbers.parse("+27823374587", None)
In [4]: print repr(geocoder.description_for_number(query, "en"))
u'Sudáfrica'
Por supuesto, también puede usar la biblioteca de perl puro.
Aquí hay un script de trabajo:
#!/usr/bin/env perl
use 5.014;
use warnings;
use Number::Phone::Country;
use Locale::Country;
for my $arg (@ARGV) {
#get ISO country code and IDD from the number
my($iso_cc, $idd) = Number::Phone::Country::phone2country_and_idd($arg);
unless($iso_cc) {
warn "Bad phone number $arg";
next;
}
say "Phone: $arg";
say "ISO Code: $iso_cc";
say "International direct dialing: $idd";
#get the country name from the ISO code
my $country = code2country($iso_cc);
say "Country name: $country\n";
}
Si lo ejecutas como:
perl scriptname "+1 302 1234567" +421905905905
salidas:
Phone: +1 302 1234567
ISO Code: US
International direct dialing: 1
Country name: United States
Phone: +421905905905
ISO Code: SK
International direct dialing: 421
Country name: Slovakia
El script utiliza dos módulos perl:
Nicolás Raúl
steve barnes