Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 11/09/2019, à 10:26

Compte supprimé

[résolu]Je cherche à utiliser google traduction depuis Python

Bonjour,
Je cherche à utiliser google traduction depuis un script python pour traduire des mots mais aussi pour les prononcer.
J'ai essayé le module googletrans mais il ne me permet pas de prononcer les mots/phrases (ou je n'ai pas su m'y prendre...) et ne propose pas une traduction étendue..

Le programme trans pour shell serait parfait cependant je n'arrive pas à le mettre en oeuvre depuis python . Je n'ai pas le retour que j'attends ...

In [2]: import os                                                               

In [3]: os.popen('trans :fr word')                                              
Out[3]: <os._wrap_close at 0x7f5eef2d1588>

In [4]:  

Pourquoi  ? et comment dois je m'y prendre?
edit : il faut utiliser l'option w ---> os.popen('trans :fr word','w')

Par ailleurs si vous connaissez un module python permettant de faire les mêmes choses, je suis preneur ..
Merci

Dernière modification par Compte supprimé (Le 12/09/2019, à 10:59)

#2 Le 11/09/2019, à 11:45

Compte supprimé

Re : [résolu]Je cherche à utiliser google traduction depuis Python

edit : il faut utiliser l'option w ---> os.popen('trans :fr word','w')

Si dans ipython j'ai bien le retour que j'attends, je n'arrive toujours pas à mettre en oeuvre la commande** dans mon script python...
** à noter que dans Ipython le prompt ne revient pas sans action de ma part

Dernière modification par Compte supprimé (Le 11/09/2019, à 11:47)

#3 Le 11/09/2019, à 11:48

melixgaro

Re : [résolu]Je cherche à utiliser google traduction depuis Python

Salut,

Utilise plutôt subprocess pour les appels externes.


Linux depuis ~2007. Xubuntu seulement.

Hors ligne

#4 Le 11/09/2019, à 11:51

Compte supprimé

Re : [résolu]Je cherche à utiliser google traduction depuis Python

Salut melixgaro,
merci je vais regarder comment l'utiliser ..

#5 Le 11/09/2019, à 14:34

melixgaro

Re : [résolu]Je cherche à utiliser google traduction depuis Python

Ça supplante normalement les manips à base de popen. Ça offre plus de fonctions, c'est plus souple, ça produit code plus lisible (normalement).
Je n'ai pas le temps de trop regarder ta vraie question (a propos de google traduction).


Linux depuis ~2007. Xubuntu seulement.

Hors ligne

#6 Le 11/09/2019, à 15:27

Compte supprimé

Re : [résolu]Je cherche à utiliser google traduction depuis Python

J'adopte wink
...pour mettre la sortie de la commande dans une variable :

result = subprocess.check_output('trans -brief hello', shell = True)
print(result.decode())
--> Bonjour

forme à utiliser pour une classe:

self.mot = 'hello'
traduction = subprocess.check_output(['trans', '-brief', self.mot])

Dernière modification par Compte supprimé (Le 11/09/2019, à 15:28)

#7 Le 11/09/2019, à 15:36

melixgaro

Re : [résolu]Je cherche à utiliser google traduction depuis Python

et pour passer des commandes, je procède ainsi

import shlex
cmd = "commande -o option arg1 arg2"
result = subprocess.check_output(shlex.split(cmd))

shlex.split découpe la commande comme il faut et passe le résultat à subprocess

Dans ton cas, tu peux très bien faire

cmd = "trans -brief {:s}"
result = subprocess.check_output(shlex.split(cmd.format(self.mot)))

Linux depuis ~2007. Xubuntu seulement.

Hors ligne

#8 Le 11/09/2019, à 15:56

Compte supprimé

Re : [résolu]Je cherche à utiliser google traduction depuis Python

Merci . Cela peut m'être utile pour simplifier la lecture/ecriture du code dans certains cas ..

edit: Je passe le sujet en résolu . Je peux faire avec trans shell car c'est pour une application personnelle qui restera sur mon ordi  et donc peut ne pas être portable.
Par contre, si vous connaissez un truc équivalent en python, je prends .

Dernière modification par Compte supprimé (Le 12/09/2019, à 11:08)

#9 Le 12/09/2019, à 18:46

Compte supprimé

Re : [résolu]Je cherche à utiliser google traduction depuis Python

Re,
Je bloque sur un détail ...
J'aimerai que ma variable result (#6), une fois dans un Label tkinter, ait la même apparence que lors d'un affichage écran avec un print...
Comment faire?

import tkinter as tk
import subprocess
mot = 'resource'
traduction = subprocess.check_output(['trans', mot])
print(traduction.decode(encoding='UTF-8'))
root = tk.Tk()
label = tk.Label(root, text=traduction.decode(encoding='UTF-8'))
label.grid()
root.mainloop()