zoukankan      html  css  js  c++  java
  • python really battery includeded

    see the http://code.activestate.com/recipes/576890-python-wrapper-for-google-ajax-language-api/

    really cool isn't it?

    A Python Wrapper for Google AJAX Language API, Uses Google Language Detection, in cases source language is not provided with the source text, Splits up text if it's longer then 4500 characters, as a limit put up by the API. Working fine for me, please let me know if i missed something.

    Python, 53 lines
    Copy to clipboard

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    # -*- coding: utf-8 -*-
    
    import re
    import sys
    import urllib
    import simplejson
    
    baseUrl = "http://ajax.googleapis.com/ajax/services/language/translate"
    
    def getSplits(text,splitLength=4500):
        '''
        Translate Api has a limit on length of text(4500 characters) that can be translated at once, 
        '''
        return (text[index:index+splitLength] for index in xrange(0,len(text),splitLength))
    
    
    def translate(text,src='', to='en'):
        '''
        A Python Wrapper for Google AJAX Language API:
        * Uses Google Language Detection, in cases source language is not provided with the source text
        * Splits up text if it's longer then 4500 characters, as a limit put up by the API
        '''
    
        params = ({'langpair': '%s|%s' % (src, to),
                 'v': '1.0'
                 })
        retText=''
        for text in getSplits(text):
                params['q'] = text
                resp = simplejson.load(urllib.urlopen('%s' % (baseUrl), data = urllib.urlencode(params)))
                try:
                        retText += resp['responseData']['translatedText']
                except:
                        raise
        return retText
    
    
    def test():
        msg = "      Write something You want to be translated to English,\n"\
            "      Enter ctrl+c to exit"
        print msg
        while True:
            text = raw_input('#>  ')
            retText = translate(text)
            print retText
            
    
    if __name__=='__main__':
        try:
            test()
        except KeyboardInterrupt:
            print "\n"
            sys.exit(0)
    
  • 相关阅读:
    [湖南集训]谈笑风生
    【SCOI2010】序列操作
    ●BZOJ 3994 [SDOI2015]约数个数和
    ●BZOJ 3309 DZY Loves Math
    ●UOJ 21 缩进优化
    ●BZOJ 2693 jzptab
    ●BZOJ 2154 Crash的数字表格
    ●BZOJ 3529 [Sdoi2014]数表
    ●2301 [HAOI2011] Problem b
    ●BZOJ 2820 YY的GCD
  • 原文地址:https://www.cnblogs.com/lexus/p/1853764.html
Copyright © 2011-2022 走看看