J'ai une application qui importe des données à partir d'un fichier décapé. Cela fonctionne très bien dans Windows mais le comportement de Mac et Linux est impair.Le fichier décapé ne se charge pas sous Mac/Linux
Sous OS X, le fichier décapé (extension de fichier ".char") n'est pas disponible en tant que sélection à moins que je ne mette le type de fichier à *. *. Ensuite, si je sélectionne un fichier qui a l'extension .char, il ne se charge pas, en donnant l'erreur
unpickle_file = cPickle.load(char_file)
ValueError: could not convert string to float
Cependant, si je crée un fichier qui ne porte pas l'extension de .char, ce fichier sera charger très bien. Sous Linux, lorsque j'utilise la boîte de dialogue "Fichier ouvert", mes fichiers décapés ne sont pas visibles, qu'ils aient ou non une extension de fichier. Cependant, je peux les voir sous Nautilus ou Dolphin. Ils n'existent tout simplement pas pour mon application.
Modifier Voici la sauvegarde du code:
def createSaveFile(self):
"""Create the data files to be saved and save them.
Creates a tuple comprised of a dictionary of general character information
and the character's skills dictionary."""
if self.file_name:
self.save_data = ({'Name':self.charAttribs.name,
<snip>
self.charAttribs.char_skills_dict)
self.file = open(self.file_name, 'w')
cPickle.dump(self.save_data, self.file)
self.file.close()
Voici le code ouvert:
def getCharFile(self, event): # wxGlade: CharSheet.<event_handler>
"""Retrieve pickled character file from disk."""
wildcard = "Character files (*.char) | *.char | All files (*.*) | *.*"
openDialog = wx.FileDialog(None, "Choose a character file", os.getcwd(),
"", wildcard, wx.OPEN | wx.CHANGE_DIR)
if openDialog.ShowModal() == wx.ID_OK:
self.path = openDialog.GetPath()
try:
char_file = open(self.path, "r")
unpickle_file = cPickle.load(char_file)
char_data, char_skills = unpickle_file
self.displayCharacter(char_data, char_skills)
except IOError:
self.importError = wx.MessageDialog(self,
"The character file is not available!",
"Character Import Error", wx.OK | wx.ICON_ERROR)
self.importError.ShowModal()
self.importError.Destroy()
openDialog.Destroy()
Qu'est-ce qu'un "fichier décapés"? –
Un fichier créé à l'aide du module pickle (http://docs.python.org/library/pickle.html#module-pickle), un module utilisé pour sérialiser et désérialiser les structures de données. –