Posté le 08/01/2019 09:24
Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 218 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements
Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd
Citer : Posté le 08/01/2019 10:47 | #
Tu ne peux pas lire un fichier en mode écriture, tu as trois modes d'ouverture en Python :
w : Ouvre le fichier en écriture (le crée si n'existe pas) et efface son contenu.
a : Ouvre le fichier en écriture (le crée si n'existe pas) et d'efface PAS son contenu. Les commandes d'écriture rajoutent le contenu à la fin du fichier.
r : Ouvre le fichier en lecture.
Ensuite, utiliser les commandes correspondantes, ici ouvrir le fichier pré-créé texte et placer son contenu dans copie.
contenu = file.read()
with file as open("copie","w"): //Idem.
file.write(contenu)
N'oublie pas de mettre des chemins corrects
Citer : Posté le 08/01/2019 11:18 | #
Merci ! mais ça ne marche pas...
Je met les chemins à la place de texte ?
Citer : Posté le 08/01/2019 11:19 | #
Le mode a signifie en réalité append, ce qui veut dire que tu ouvres le fichier et que tu places le curseur pour écrire à la fin. C'est utile pour les fichiers de logs par exemple.
Si tu veux pouvoir lire et écrire dans un fichier, les modes suivants sont à ta disposition :
- r+ : si le fichier n'existe pas, la création du curseur échoue.
- w+ : si le fichier n'existe pas, il est créé, et s'il existe, le contenu sera vidé avant que tu ne puisses interagir avec.
- a+ : si le fichier n'existe pas, il est créé. Le curseur sera placé à la fin du fichier, il te faudra donc le remettre au début si tu veux commencer à lire du début.
Je t'encourage à lire ceci (en anglais) pour approfondir ta connaissance des différents modes d'ouverture.
Mon blog ⋅ Mes autres projets
Citer : Posté le 08/01/2019 11:22 | #
J'ai ça comme erreur : SyntaxeError : can't assign to expression au niveau du with
Citer : Posté le 08/01/2019 11:56 | #
Les .+ sont disponibles en MicroPython ?
Sinon, si la Syntaxe Error s'affiche toujours avec les expressions classiques essaie de créer l'objet comme dans ton premier post, et oui il faut mettre le chemin du fichier à la place de texte et copie
(NB: le code échouera peut être si texte n'existe pas)
Citer : Posté le 08/01/2019 17:26 | #
>_<' récapitulons : j'ai un fichier qui s'appelle texte et qui est ici \\fls0\texte il contient une phrase.
Lorsque j'utilise le with j'ai la syntaxe error relevée à mon dernier post et lorsque je que fait ça avec le = l'ouverture ne présente aucun problème mais impossible d'utiliser .write ou .read parce que le type de ma variable n'est pas correct (dans l'exemple ci-dessous, file)
file=open("\\fls0\texte","r")
contenu=file.read() Cette deuxième ligne me retourne l'erreur : AttributeError : 'NoneType' object has no attribute 'read' ...
Merci d'avance
Citer : Posté le 08/01/2019 17:37 | #
Hum... Essaie remplacer le nom d'objet file par fichier ou f.
Sinon je ne sais pas, la doc que j'ai trouvé dit que ça devrait fonctionner.
http://docs.micropython.org/en/v1.8.2/esp8266/esp8266/tutorial/filesystem.html
Citer : Posté le 08/01/2019 18:03 | #
Ça veut dire que ton fichier est nul (None).
- Commence déjà par escaper les backslashs : là tu mets une tabulation dans le nom de fichier
- Tu es sûr que la commande file est implémentée dans le port de la g90 ?
Ecrivez vos programmes basic sur PC avec BIDE
Citer : Posté le 08/01/2019 19:01 | #
Merci pour la doc ! Elle concerne cependant MicroPython 1.8, devenu obsolète : je suis actuellement avec la version 1.9.4... Mais je pense que ça doit marcher
A la place des backslashs je met quoi du coup ? Des slashs ?
filen'est pas une commande mais un objet
Citer : Posté le 08/01/2019 19:10 | #
Nan, échapper c'est ajouter des backslash devant : \\\\fls0\\test.txt
Citer : Posté le 08/01/2019 19:11 | #
Ah okay merci !!
Citer : Posté le 08/01/2019 19:24 | #
Mince je n'avais pas tilté !
Tant mieux alors, quelqu'un pourrait tester si les slashs fonctionnent également ?
Et si tu déclares les fichiers à l'extérieur de with, peut être faudrait-il présenter file.close()
Citer : Posté le 08/01/2019 19:29 | #
f.close()
Effet immédiat.
Citer : Posté le 08/01/2019 19:36 | #
Permettez-moi de vous présenter un truc utile :
f.close()
Citer : Posté le 08/01/2019 19:48 | #
Et du coup c'est quoi le bout de code qui fonctionne.. moi aussi j'ai essayé mais je n'y parvient pas..
-Planétarium 2
Citer : Posté le 08/01/2019 19:55 | #
Je ne sais pas... Rien ne fonctionne : toujours des erreurs... faut que je réessaye avec la doc sous le nez... mais sans conviction...
Citer : Posté le 08/01/2019 19:58 | #
Possible aussi que Casio n'ait pas connecté ça...
En tous cas le open() est à date présent sur toutes les implémentations Python sur calculatrice :
https://tiplanet.org/forum/viewtopic.php?t=21991&p=237972
Mais effectivement, à ce jour, je n'ai pas entendu parler sur calculatrice de script Python capable de charger ou enregistrer des données dans un fichier.
Citer : Posté le 08/01/2019 20:02 | #
En tous cas le open() est à date présent sur toutes les implémentations Python sur calculatrice
Pour info, je n'ai jamais réussi à ouvrir un fichier avec la Graph 90+E. À chaque fois, j'ai une Syntax error, quelque soit les arguments fournis à la fonction…
Citer : Posté le 08/01/2019 20:18 | #
L'est pas impossible que Zezombye arrive à implémenter ça, je suppose ?
Citer : Posté le 08/01/2019 20:23 | #
Si il trouve les sources de l'addin de Casio, trouve le bug, trouve comment le corriger, trouve comment recompiler le tout, ouais, c'est pas impossible