Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Python3.2] Codage entre Python3.2 et MacOs X.6.7.

    26 mai 2011 à 15:47:45

    Bonjour,
    J'ai écrit une boucle récursive pour récupérer les informations Unix d'éléments des répertoires à l'aide du module subprocess.check_output(). Ce qui me permet de récupérer les lignes à traiter.
    La commande qui me pose un problème est :
    lsOption='-TaeblO@'
    rep='/RépertoireAvecAccent/'
    subprocess.check_output(["ls", lsOption, rep]).decode("Utf-8").split('\n'))
    

    Ça fonctionne très bien en ligne de commande. Mais quand le script est lancé de manière automatique par le biais de launchd, j'obtient :
    subprocess.CalledProcessError: Command '['ls', '-TaeblO@', '/Re\314\201pertoireAvecAccent/']' returned non-zero exit status 1
    

    Je précise que quand les répertoires n'ont pas d'accent, ça fonctionne. Je pensais à une erreur de codage, mais après de multiple tests (macroman, Utf-8, ascii…), j'ai toujours cette erreur avec un lancement automatique...
    Y compris en faisant rep.encode("macroman") par exemple.

    Une solution, explication, un lien d'information...

    Python version : 3.2 (r32:88452, Feb 20 2011, 10:19:59)
    [GCC 4.0.1 (Apple Inc. build 5493)]
    supports_unicode_filenames = True
    • Partager sur Facebook
    • Partager sur Twitter
      27 mai 2011 à 16:22:43

      Le problème vient clairement de la façon dont ta chaîne rep est encodée.

      Prends-tu le soin de lui donner l'encodage de ton système avant de l'utiliser en argument de la commande "ls" ?
      Peux-tu nous montrer ton script dans son ensemble, de façon que l'on puisse se faire une idée du contexte ?
      • Partager sur Facebook
      • Partager sur Twitter
      Zeste de Savoir, le site qui en a dans le citron !

      [Python3.2] Codage entre Python3.2 et MacOs X.6.7.

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown