Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Interfaçage autre langage Python Discussion :

Python et SPSS - enregistrer .sps dans un dossier


Sujet :

Interfaçage autre langage Python

  1. #1
    Candidat au Club
    Femme Profil pro
    Data analyst
    Inscrit en
    juillet 2018
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Data analyst

    Informations forums :
    Inscription : juillet 2018
    Messages : 4
    Points : 3
    Points
    3
    Par défaut Python et SPSS - enregistrer .sps dans un dossier
    Hello tout le monde!

    Je suis nouvelle en Python, et je l'utilise avec SPSS.
    J'essaie de créer un fichier de syntaxe .sps via Python, et quand il s'agit de l'enregistrer, je rencontre un soucis car je n'arrive pas à l'enregistrer où je veux.
    Je sais que c'est pas évident de gérer les \ dans Python, mais du coup je ne trouve pas de solution. Si quelqu'un peut m'aider je suis preneuse! Voilà mon code pour definir le dossier:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    BEGIN PROGRAM.
    import SpssClient, os, spss, spssaux, codecs, textwrap, collections,Tkinter,tkMessageBox,ttk, tempfile,io
    from Tkinter import *
    from os.path import commonprefix
     
    SpssClient.StartClient() 
    synPathL0U = os.path.dirname(SpssClient.GetActiveDataDoc().GetDocumentPath()) 
    SpssClient.StopClient()
    synPathL1U=os.path.dirname(synPathL0U)
    synPathL2U=os.path.dirname(synPathL1U)
    synPathL3U=os.path.dirname(synPathL2U)
    print "synPathL0U =",synPathL0U
    print "synPathL1U =",synPathL1U
    print "synPathL2U =",synPathL2U
     
    syntaxpath=str(spssaux._smartquote(os.path.dirname(synPathL2U)+"\\"+"0.syntaxes"+"\\"))
    print syntaxpath
    Il print bien ce qu'il faut dans syntaxpath. Mais quand il s'agit de sauvegarder le fichier, cela ne fonctionne pas:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    syntax_name="checking"
    if spss_name!="":
        syntax_name=syntaxpath + "_checking"
     
    outfile=codecs.open(syntaxpath + syntax_name + ".sps","w+","utf-8-sig")
    outfile.write(global_syntax)
    outfile.close()
    print ("Syntax saved as: " + syntaxpath  + syntax_name + ".sps")
     
    end program.
    Dans le dernier print, il ne m'affiche pas du tout le path comme il le faut, avec des \\ et des guillemets un peu n'importe où:
    IOError: [Errno 22] invalid mode ('wb') or filename: '"C:\\xxxxx\\yyyyy\\0.syntaxes\\""C:\\xxxxx\\yyyyy\\0.syntaxes\\"_checking.sps'
    Dans l'idéal, je souhaiterais qu'il me sauvegarde mon .sps dans le syntaxpath et ensuite au niveau du nom, j'aimerais incorporer le 'yyyy' qu'il m'affiche dans le path à la toute fin.
    Je n'ai pas mis les 'entre' du code car il est vraiment long et je ne suis pas sûre de l'utilité.

    Dites moi si ce n'est pas clair, et j'espère que quelqu'un pourra m'aider. Merci d'avance!!

  2. #2
    Modérateur

    Homme Profil pro
    Architecte technique
    Inscrit en
    juin 2008
    Messages
    14 312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Industrie

    Informations forums :
    Inscription : juin 2008
    Messages : 14 312
    Points : 24 195
    Points
    24 195
    Par défaut
    Salut,

    Citation Envoyé par carcow7 Voir le message
    Dans le dernier print, il ne m'affiche pas du tout le path comme il le faut, avec des \\ et des guillemets un peu n'importe où:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    IOError: [Errno 22] invalid mode ('wb') or filename: '"C:\\xxxxx\\yyyyy\\0.syntaxes\\""C:\\xxxxx\\yyyyy\\0.syntaxes\\"_checking.sps'
    Ce n'est pas le "print" qui affiche ce message là mais probablement l'open qui est un peu avant.
    Et si vous faites attention au nom du fichier que vous avez construit, le répertoire est répété 2 fois.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Candidat au Club
    Femme Profil pro
    Data analyst
    Inscrit en
    juillet 2018
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Data analyst

    Informations forums :
    Inscription : juillet 2018
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Tout d'abord merci d'avoir pris le temps de regarder!

    Right, j'ai mis deux fois le path, j'ai corrigé, mais cela me met toujours '\\' dans le path, donc l'erreur est toujours là.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    syntax_name="checking"
    if spss_name!="":
        syntax_name=ordnumber + "_checking"
     
    outfile=codecs.open(syntaxpath + syntax_name + ".sps","w+","utf-8-sig")
    J'ai modifé l'outfile, et du coup cela me met cette erreur:

    IOError: [Errno 22] invalid mode ('w+b') or filename: '"C:\\xxxx\\yyyyy\\0.syntaxes\\"_checking.sps'

  4. #4
    Modérateur

    Homme Profil pro
    Architecte technique
    Inscrit en
    juin 2008
    Messages
    14 312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Industrie

    Informations forums :
    Inscription : juin 2008
    Messages : 14 312
    Points : 24 195
    Points
    24 195
    Par défaut
    Salut,

    Est ce que '"C:\\xxxx\\yyyyy\\0.syntaxes\\"_checking.sps' est un nom de fichier valide?
    Vous auriez le même genre d'erreur avec '"C:toto"titi'!

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Candidat au Club
    Femme Profil pro
    Data analyst
    Inscrit en
    juillet 2018
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Data analyst

    Informations forums :
    Inscription : juillet 2018
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    J'ai finalement résolu le soucis en enlevant spssaux._smartquote() dans syntaxpath.

    Encore merci de l'aide!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. enregistrer fichier dans un dossier :ceci est il possible??
    Par info007 dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 21/05/2014, 14h07
  2. Python/MySQL - n'enregistre pas dans la bdd
    Par SuperJohn dans le forum Réseau/Web
    Réponses: 1
    Dernier message: 19/05/2009, 15h20
  3. Réponses: 3
    Dernier message: 07/11/2008, 11h41
  4. Réponses: 7
    Dernier message: 15/09/2008, 10h44
  5. Enregistrer sous dans des dossiers partagés
    Par pc306 dans le forum Windows XP
    Réponses: 7
    Dernier message: 04/01/2006, 20h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo