2016-06-17 1 views
1

Я пытаюсь перевести весь файл .txt с помощью API Google Translate в Python.Как перевести весь файл .txt с помощью API Google Translate в Python?

код по умолчанию:

print(service.translations().list(source='zh', 
            target='en', 
            q=['上海熙缘节能环保科技服务有限公司', 
            '广东宏德科技物业有限公司']).execute()) 

if __name__ == '__main__': 
    main() 

Как я могу изменить этот код, чтобы он мог перевести файл .txt?

+0

Вы спрашиваете, как читать текст из файла? –

+0

Да, но с китайскими иероглифами, поэтому файл находится в UTF или Unicode. По умолчанию декодер находится в cp1252 – shj997

+0

Возможный дубликат [скрипта Python для перевода через google translate] (http://stackoverflow.com/questions/9404628/python-script-to-translate-via-google-translate) –

ответ

0

Простое и эффективное решение с моей точки зрения, не зная сложные детали, и я предполагаю параметр q является последовательностью предложений/слов, которые вы хотите перевести будет:

print(service.translations().list(source='zh', target='en', q= (line.rstrip() for line in open('file.txt')).execute()) 

Я вижу ваше выражение чтобы быть действительно неспокойным, вы вставляете много выражений в одну строку.

+0

Спасибо direprobs, используя то, что предоставил Google. Теперь, когда я это сделал, я получаю UnicodeDecodeError: кодек «charmap» не может декодировать байт 0x9d в позиции 50: карты символов до ошибки. API Google Translate использует cp1252, но мой китайский текст должен быть сохранен в Unicode, чтобы сохранить их значения, иначе они исчезнут. – shj997

+0

Вот фрагмент кода, который Google использует в качестве класса декодера IncrementalDecoder (codecs.IncrementalDecoder): def decode (self, input, final = False): return codecs.charmap_decode (input, self.errors, decoding_table) [0 ] класс StreamWriter (кодек, codecs.StreamWriter): проход класс StreamReader (кодек, codecs.StreamReader): передача ### кодировок модуль API защиту getregentry(): возвращение codecs.CodecInfo ( name = 'cp1252', encode = Codec(). Encode, – shj997

+0

@ shj997 См. Эту страницу из документации Python: [Unicode HOWTO] (https://docs.python.org/3/howto/unicode.html). – direprobs