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:
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
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
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
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 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.IOError: [Errno 22] invalid mode ('wb') or filename: '"C:\\xxxxx\\yyyyy\\0.syntaxes\\""C:\\xxxxx\\yyyyy\\0.syntaxes\\"_checking.sps'
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!!
Partager