題:
從電話號碼告訴國家的圖書館
Nicolas Raoul
2014-07-11 13:02:26 UTC
view on stackexchange narkive permalink

我有上千個電話號碼,例如 +27823374587

是否有可以告訴我國家的圖書館或命令行程序?

例如: +27823374587 南非

要求:

  • 離線運行
  • 免費,理想的開源軟件
  • 任何操作系統或編程語言都可以
二 答案:
#1
+4
Steve Barnes
2014-07-11 13:10:00 UTC
view on stackexchange narkive permalink

有兩個可以執行此操作的python庫 python-phonenumbers將解析各種格式以獲取國家/地區代碼。

  • 免費的&開源。 / li>
  • 脫機工作
  • 跨平台& OS
  • Python 2.5-2.7 & 3.x
  • 純Python,因此不需要C編譯器。

基於該頁面上的示例並使用ipython:

 在[1]中:導入電話號碼在[2]中:從電話號中導入geocoder在[3]中: query = phonenumbers.parse(“ + 27823374587”,無)在[4]中:打印repr(geocoder.description_for_number(query,“ en”)) 

u'南非'

漂亮的圖書館,似乎可以完成90%的工作:“ + 27823374587”→“ +27”。我想我可以編寫映射代碼使其成為“ +27823374587”→“ South Africa”,但是如果已經有了一個可以完成全部工作的圖書館,那就太好了:-)
@NicolasRaoul-是的-我在上面的答案中添加了一個示例。 *(頁面上有一個,但我想它在細節中丟失了。)*
#2
+2
jm666
2014-07-12 00:27:56 UTC
view on stackexchange narkive permalink

您當然也可以使用pure-perl庫。

這是一個有效的腳本:

 #!/ usr / bin / env perluse 5.014;請使用警告;使用Number :: Phone :: Country;使用Locale :: Country;對於我的$ arg(@ARGV){#從數字my($ iso_cc,$ idd)= ISO:國家/地區和IDD = Number :: Phone :: Country :: phone2country_and_idd($ arg);除非($ iso_cc){警告“錯誤的電話號碼$ arg”;下一個; }說“電話:$ arg”;說“ ISO代碼:$ iso_cc”;說“國際直撥:$ idd”; #從ISO代碼中獲取國家名稱my $ country = code2country($ iso_cc);說“國家名稱:$ country \ n”;}  

如果您以以下方式運行它:

  perl腳本名“ +1 302 1234567” +421905905905  

輸出:

 電話:+1 302 1234567ISO代碼:US國際直撥電話:1國家/地區名稱:美國電話:+ 421905905905ISO代碼:SK國際直撥電話:421國家/地區名稱:斯洛伐克 

該腳本使用了兩個perl模塊:



該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 3.0許可。
Loading...