salut

je voudrais réaliser une simple copie de fichier en lançant ma commande shell dans un subprocess.Popen.
Le problème, c'est qu'un de mes utilisateurs s'appelle Noëlle, qu'il a un répertoire à son nom et que Popen plante quand je veux faire la copie.

j'obtiens alors l'erreur suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
Traceback (most recent call last):
  File "C:\Documents and Settings\cyrull\Bureau\PDF\pdf2xls.pyw", line 641, in MonAppli
    reppdf2txt = self.pdf2txt()
  File "C:\Documents and Settings\cyrull\Bureau\PDF\pdf2xls.pyw", line 140, in pdf2txt
    p = subprocess.Popen(commande, shell = True)
  File "C:\Python25\lib\subprocess.py", line 594, in __init__
    errread, errwrite)
  File "C:\Python25\lib\subprocess.py", line 816, in _execute_child
    startupinfo)
UnicodeEncodeError: 'ascii' codec can't encode character u'\xeb' in position 87: ordinal not in range(128)
qui est liée au ë. Si je remplace Noëlle par Noelle, plus de problème.
Or, sur la même machine, si je vais directement dans l'invite de commande DOS, je n'ai aucun problème pour exécuter ma commande. En d'autres termes, c'est Popen et non DOS qui pose problème !

voilà le code concerné :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
            commande = 'copy "' + self.FichierCopie + '"'
            p = subprocess.Popen(commande, shell = True)
            p.wait()
Est-ce que quelqu'un voit d'où le problème peut venir sachant que j'ai aussi essayé unicode(commande) dans le Popen

Merci d'avance pour votre aide

Cyrull